【问题标题】:Windows installer for Python module which includes dependencies包含依赖项的 Python 模块的 Windows 安装程序
【发布时间】:2023-11-29 06:50:01
【问题描述】:

我有一个 python 模块,其 setup.py 中有一个入口点,它指向 __ main__.py。我希望能够将此模块分发给我的同事,以便他们可以使用 Windows 安装程序安装它,并从命令行执行入口点。他们已经在他们的计算机上安装了 Python。

内置的python setup.py bdist_wininst 功能看起来很完美,除了我的模块具有第三方模块依赖项,并且由于某种原因,bdist_wininst 不会安装依赖项,即使它们在安装程序的install_requires 中指定。

py2exe 或 pyinstaller 等一体式 windows exe 解决方案不适合,因为入口点需要输入,我希望用户能够通过命令行指定输入。

当然,我可以分发模块源文件并让我的同事运行 python setup.py install,但他们会太害怕——他们不是程序员。

【问题讨论】:

  • 您能在python setup.py install 中包含一个批处理文件,然后让他们运行批处理文件吗?
  • 我想我可以。好主意。但我也想知道是否有更完善的解决方案。

标签: python windows-installer installation setuptools


【解决方案1】:

是的,可以使用像 Nullsoft NSIS 这样的应用程序来构建一个安装程序来安装你的 python 包,但它需要更多的代码和一个额外的构建步骤。

您的同事是否安装了 pip 和 setuptools?你能在 pypi 上分发你的包吗?如果是这样,您的同事只需执行pip install mypackage 就非常简单。它具有处理依赖项的额外好处,如果您使用 python *,您的用户不需要构建环境来安装您的包。

【讨论】: