On Sat, 12 Jan 2008 12:02:20 +0100, Jorgen Bodde wrote: > I am trying to make a debian package. I am following the tutorial by > Horst Jens > (http://showmedo.com/videos/video? name=linuxJensMakingDeb&fromSeriesID=37) > and it is very informative. However one thing my app has and his > doesn't, is multiple python files which need to be executed. For example > > {dir}/app > app.py > > app.py calls a lot of modules in {dir}/app. Horst says the python file > goes in /usr/bin/app.py which is ok with me, but I have multiple python > files, and I decided to use an app.sh script to call my python files. In > the /usr/bin I do not see subdirs so I assume that is not really > desirable. > > Question 1. Where do I put the bulk of python scripts in a normal linux > environment? > Question 2. Should I use *.pyc rather then *.py files to speed up > executing as the user cannot write to /usr/bin or any other dir in the > system and everytime my app runs it will recompile it > > Thanks for any advice or maybe a good tutorial how to set up files in a > linux environment
On a Debian system: I would put app.py in /usr/local/bin. I would create the directory /usr/local/lib/app, and put all other *.py and *.pyc files there. At the top of app.py, I'd add the following line so that I could import files directly from /usr/local/lib/app: sys.path.insert(0,'/usr/local/lib/app') Alternatively, using your app.sh approach, I'd put app.sh in /usr/local/bin/, and all *.py and *.pyc files in /usr/local/lib/app. I'd invoke Python something like this: PYTHONPATH=/usr/local/lib/app:$PYTHONPATH python -m app (The -m switch searches the Python path for a module to run.) If it's more of a library than an application (maybe there is a command line script, but users could want to import the modules directly), then I'd stick all the modules in /usr/local/lib/python2.x/site-packages, and the command line scripts in /usr/local/bin. Yes, install the *.pyc files. I recommend putting *.py files there as well, so users can refer to it if there are any problems, but you don't have to. The Python module compileall is your friend here. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list