packaging python code in zip file
Peter Otten
__peter__ at web.de
Thu Dec 9 08:02:09 EST 2010
mark jason wrote:
> hi,
> I have created a python app in eclipse pydev .The app is structured as
> below..
>
> mypackage
> |______ __init__.py
> |______ driver.py
> |______ helper.py
> |______ utils.py
>
> The driver.py has the main program.I have added if
> __name__=="__main__" block in the
>
> driver.py and pydev's run configuration has the following values,
> Project : myproject
> Main Module :${workspace_loc:myproject/src/mypackage/driver.py}
> So,the app runs in pydev without any problems.
>
> Then I thought of providing the modules as a zip file.So I created a
> zip file containing
> mypackage directory.The user should be able to unzip the zip file and
> run the application from command line .
>
> What bothers me is that ,the user will have to cd to mypackage folder
> and run python driver.py..
> This doesn't look like the proper way..
> I also thought of putting the driver,helper,utils modules in a folder
> called mycode and zipping it without the __init__.py file .
> I am not sure which is the correct way.
> Can somebody advise me as to how I can package it better?
If you put a __main__.py file at the top level you can run the zip archive
directly (requires Python 2.6):
$ echo 'import alpha
> print "main"' > __main__.py
$ mkdir alpha
$ echo 'print "init alpha"' > alpha/__init__.py
$ zip -r demo .
adding: alpha/ (stored 0%)
adding: alpha/__init__.py (stored 0%)
adding: __main__.py (stored 0%)
$ rm -rf __main__.py alpha/
$ ls
demo.zip
$ python demo.zip
init alpha
main
Peter
More information about the Python-list
mailing list