【问题标题】:How to pack python libs I'm using so I can distribute them with my app and have as few dependencies as possible如何打包我正在使用的 python 库,以便我可以将它们与我的应用程序一起分发并尽可能少地依赖
【发布时间】:2008-12-01 16:40:10
【问题描述】:
如何打包我正在使用的 python 库,以便我可以将它们与我的应用程序一起分发,并尽可能减少依赖项,并且不与我系统上已有的不同库/版本冲突。
L.E.:对不起,我忘了说明。我将在 linux 上执行此操作。而且我并不是指让我的应用程序成为像 deb/rpm 等可安装文件,而是如何组织我的文件,例如我将使用cherrypy 和 sqlalchemy 我将把它们与我的应用程序一起发布,而不是让用户通过自己安装所有依赖项的痛苦。
【问题讨论】:
标签:
python
linux
deployment
【解决方案3】:
您可以让您的用户从启动脚本运行系统,该脚本可以提前修复 pythonpath 以将您的版本放在首位。例如,如果您将 CherryPy、SQLAlchemy 等放在“外部”子目录中,您可以尝试:
# startproj.sh
script_path=`dirname $0`
export PYTHONPATH=${script_path}/external;${PYTHONPATH}
exec ${script_path}/projstartup.py
【解决方案4】:
但是,如果您使用列出的正确依赖项创建 deb,安装程序将为用户下载它们。这是最好的方法,因为它不是多余的。
也许您可以使用您的 deb 和所有第三方 deb 以及一个安装脚本制作一个 tar 或 zip,以正确的顺序安装所有 deb。这样,如果用户已经有某个包,就不会再次安装。