Reputation: 7126
this is my project structure
Project/
docs/
scripts/
project-2.5/
bin/
program.py
__init__.py
config/
config.ini
tests/
src/
main_program.py
__init__.py
__init__.py
the user is supposed to execute program.py and it would pass the options to main_program.py
eg. bin/># python program.py -c ../config/config.ini
program.py
#!/usr/bin/env python
import optparse
from ..src.main_program import main_function
def main():
parser = optparse.OptionParser()
parser.add_option('-c', '--config',
dest="config_file",
default='config.ini'
)
options, remainder = parser.parse_args()
main_function(options)
if __name__ == "__main__":
main()
main_program.py
#!/usr/bin/env
import sys
def main_function(options):
blah blah blah
......
...
..
.
however I get this error:
Traceback (most recent call last):
File "./program.py", line 6, in <module>
from ..src.main_program import main_function
ValueError: Attempted relative import in non-package
Upvotes: 1
Views: 87
Reputation: 5105
The __init__.py
has the wrong name in your src
folder. It's missing the .
in the filename.
Also, your Project/project-2.5/
folder does not have a __init__.py
either. If you fix those issues, it should work fine.
Upvotes: 1