猿问

在 python setup.py 中,如何允许用户在不先进行构建的情况下安装我的模块文件?

我创建了一个包含一些 C 功能的 Python 模块。我的潜在用户正在使用 MS Windows,我正在使用 distutils 将 c 功能构建到 .pyd 文件中。

我创建了一个清单文件,其中包含 Python 包中的 .pyd 文件,并且所有内容(包括 .pyd 文件)都被签入版本控制。然后用户可以从版本控制中检查它并安装模块。

该模块的大多数用户将无法从源代码重建 .pyd 文件,因为他们没有安装 Visual Studio,并且他们不一定有权访问链接源代码所需的库。所以我希望他们能够使用我包含在包中的 .pyd 文件。

问题是当用户这样做时python setup.py install,它有时会尝试重建 .pyd 文件,具体取决于 .pyd 文件和源文件的相对时间戳。我无法控制哪个时间戳更晚,我认为这取决于从版本控制中获取文件的顺序。

处理这种情况的正确方法是什么?


慕工程0101907
浏览 336回答 1
1回答

波斯汪

处理这种情况的正确方法是构建和分发为窗口标记的轮子。除了(或代替)发布源代码分发之外,您还可以这样做。pip install --upgrade setuptools wheelpython setup.py build bdist_wheel这将.whl在./dist/子目录下生成一个文件,然后您将其上传到索引(或者您可以直接向用户发送分发文件)。您的用户不会这样做python setup.py install,他们会这样做pip install yourmodule,pip 将解析正确的二进制分发,即.whl基于运行时平台下载和安装的文件。兼容性标签存在于轮子的文件名中。如果您希望支持多个平台,您可能需要为不同的平台构建单独的轮子。
随时随地看视频慕课网APP

相关分类

Python
我要回答