packaging python code in zip file

Discussion in 'Python' started by mark jason, Dec 9, 2010.

  1. mark jason

    mark jason Guest

    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?

    thanks,

    mark
     
    mark jason, Dec 9, 2010
    #1
    1. Advertising

  2. mark jason

    Peter Otten Guest

    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
     
    Peter Otten, Dec 9, 2010
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    0
    Views:
    1,810
  2. abcd
    Replies:
    7
    Views:
    552
    Edward Elliott
    May 1, 2006
  3. majj81
    Replies:
    0
    Views:
    358
    majj81
    May 31, 2006
  4. Chris Lambacher

    Re: Add file to zip, or replace file in zip

    Chris Lambacher, Jun 1, 2006, in forum: Python
    Replies:
    0
    Views:
    653
    Chris Lambacher
    Jun 1, 2006
  5. mark jason
    Replies:
    2
    Views:
    379
    Arne Vajhøj
    Dec 10, 2010
Loading...

Share This Page