How to pack python libs I'm using so I can distribute them with my app and have as few dependencies as possible

How to pack python libs I'm using so I can distribute them with my app and have as few dependencies as possible and also not to conflict with different lib/version that is already on my system.

L.E.: Sorry i forgot to specify. I will be doing this on linux. And I'm not referring in making my app a installable file like deb/rpm, etc but how to organize my files so like for example I'll be using cherrypy and sqlalchemy I'll ship those with my app and not put the user through the pain of installing all the dependencies by himself.

Answers


You can have your users run the system from a startup script, and that script can fix the pythonpath ahead of time to put your versions first. For example if you put CherryPy, SQLAlchemy, etc. in an "external" subdirectory, you could try:

# startproj.sh
script_path=`dirname $0`
export PYTHONPATH=${script_path}/external;${PYTHONPATH}
exec ${script_path}/projstartup.py

You could try freeze.py, see http://wiki.python.org/moin/Freeze for more details.


Try py2exe.


But if you make a deb with the correct dependencies listed the installer will download them for the user. That's the best way, as it's non redundant.

Maybe you could make a tar or zip with your deb and all the third-party deb's and an install script that just install all the debs in the correct order. This way, if the user already has some package it wouldn't be installed again.


Need Your Help

How to pass line breaks through jQ.append()?

jquery html append line-breaks

Using some simple jQ logic from http://www.davidjrush.com/blog/2011/12/simple-jquery-tooltip/ to create a simple tool tip like effect.

Controlling a player using touch input on the mobile device

android ios mobile unity3d touch

I am new to Unity, and was following the tutorials of roll a ball.