【问题标题】:How do I distribute a python program with the correct modules?如何分发具有正确模块的 python 程序?
【发布时间】:2014-02-25 03:09:47
【问题描述】:

我想分享一个我正在编写的程序。有没有办法将它与它使用的模块一起分发? 理想情况下,将从主文件中提取所有必要的模块并创建一个新目录,其中包含从源代码运行所需的所有内容。 我不想编译,希望能够简单地在 .zip 文件或 gitub 上共享源代码和模块。

谢谢!

【问题讨论】:

    标签: python github open-source software-distribution


    【解决方案1】:

    创建一个requirements.txt 文件,其中将列出您的项目所需的所有 Python 库。

    理想情况下,您应该为您的项目安装一个 virtualenv,并在其中安装项目的所有依赖项 - 在这种情况下,您可以简单地使用 pip freeze > requirements.txt 来(重新)生成它。

    然后有人可以轻松地使用 pip install -r requirements.txt 从 PyPI 中提取依赖项。

    http://www.pip-installer.org/en/latest/cookbook.html


    或者你可以更进一步,制作一个真正的 Python 包?这样就可以很容易地使用单个pip install 命令直接从 github 安装它。或者你甚至可以将它分享给 PyPI。

    有很多关于 Python 打包的文章您可能想阅读,例如:

    【讨论】:

    • 好的,我有点明白上面的意思了。我可以简单地在我的项目中添加一个 lib 文件夹并将我正在使用的模块复制到那里,然后将全部内容上传到 github 吗?我希望人们能够从 Github 下载包含所有内容的 .zip。关于 pip-installer,我需要做一些特别的事情来让他们托管我的包吗?他们需要批准吗?谢谢你的帮助!!
    • 您不应该复制外部库 - 如果有人已经有了副本怎么办?如果它得到了错误修正更新怎么办?这就是我们有依赖跟踪的原因。制作一个普通的Python包,setuptools甚至可以为你生成一个Win32安装程序
    • 好的,我将探索制作一个包。我是否正确地说,如果我使用 setuptools,它将创建一个 init.py 指向我的程序需要运行的依赖项?
    • 您可以通过编写名为setup.py 的脚本并在install_requires 下指定依赖项来配置setuptools; Setuptools 将为您的用户下载并安装它们。请阅读Hitchhiker's guide to Python packaging
    • 太好了,非常感谢您的帮助!我将此线程标记为已解决。
    【解决方案2】:

    这是另一个 SO 线程的链接,该线程显示了如何使用模块创建和构建文件夹,然后压缩文件夹并共享它; Python: sharing common code among a family of scripts

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-06
      • 2014-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-16
      • 1970-01-01
      相关资源
      最近更新 更多