【问题标题】:How to distribute a Python program with external libraries如何使用外部库分发 Python 程序
【发布时间】:2015-01-08 05:35:19
【问题描述】:

我有一个 Python 程序,它使用以下库:Tkinter、NumPy、SciPy、SymPy 和 Matplotlib。在不久的将来,它可能会在开发过程中包含更多的库。

我怎样才能将这样的程序分发给 Mac、Windows 和 Linux 用户,而不要求用户安装每个库的正确版本,并且希望只下载一个文件并执行它?

我最初想要的是将程序编译成静态二进制程序,但似乎这不是一个容易的目标。

也许我可以要求用户安装 Python,但这是我可以要求他们的最大要求,如果可能的话我想避免它。

我根本不在乎隐藏代码;最后,我将分发代码和程序。我想要的是让任何用户都可以轻松下载和运行该程序。

即使是“Python 程序不适合这样的发行版”这样的建议也是受欢迎的。我在分发 C 程序方面有相当多的经验,但我不知道对 Python 程序有什么期望。

【问题讨论】:

    标签: python software-distribution


    【解决方案1】:

    为方便起见,您可以尝试pyinstaller 之类的方法。 它会根据需要将所有需要的模块打包到一个文件夹或一个可执行文件中。它可以在所有平台上运行。

    创建目录的简单命令包含一个可执行文件和所有需要的库

    $pyinstaller --onedir --name=directory_name --distpath="path_to_put_that_directory" "path to your main_program.py"
    

    您可以将--onedir 更改为--onefile 以使该文件夹成为一个可执行文件,其中包含运行所需的所有内容。

    【讨论】:

    • 谢谢,我会试试这个,看看它对我的程序是如何工作的。
    【解决方案2】:

    【讨论】:

    • 感谢您的帮助。我猜这样的发行版假定用户已经安装了 Python,对吗?
    【解决方案3】:

    您可以查看Py2exe,即使您冒着应用程序变得比现在更大的风险,并且需要手动安装一些软件包。

    【讨论】:

      猜你喜欢
      • 2014-02-01
      • 2012-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-09
      相关资源
      最近更新 更多