【问题标题】: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


    【解决方案1】:

    您可以尝试freeze.py,更多详情请参阅http://wiki.python.org/moin/Freeze

    【讨论】:

      【解决方案2】:

      试试py2exe

      【讨论】:

        【解决方案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。这样,如果用户已经有某个包,就不会再次安装。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-05-28
            • 1970-01-01
            • 2011-02-05
            相关资源
            最近更新 更多