我创建了一个包含一些 C 功能的 Python 模块。我的潜在用户正在使用 MS Windows,我正在使用 distutils 将 c 功能构建到 .pyd 文件中。我创建了一个清单文件,其中包含 Python 包中的 .pyd 文件,并且所有内容(包括 .pyd 文件)都被签入版本控制。然后用户可以从版本控制中检查它并安装模块。该模块的大多数用户将无法从源代码重建 .pyd 文件,因为他们没有安装 Visual Studio,并且他们不一定有权访问链接源代码所需的库。所以我希望他们能够使用我包含在包中的 .pyd 文件。问题是当用户这样做时python setup.py install,它有时会尝试重建 .pyd 文件,具体取决于 .pyd 文件和源文件的相对时间戳。我无法控制哪个时间戳更晚,我认为这取决于从版本控制中获取文件的顺序。处理这种情况的正确方法是什么?
1 回答

波斯汪
TA贡献1811条经验 获得超4个赞
处理这种情况的正确方法是构建和分发为窗口标记的轮子。除了(或代替)发布源代码分发之外,您还可以这样做。
pip install --upgrade setuptools wheel
python setup.py build bdist_wheel
这将.whl在./dist/子目录下生成一个文件,然后您将其上传到索引(或者您可以直接向用户发送分发文件)。
您的用户不会这样做python setup.py install,他们会这样做pip install yourmodule,pip 将解析正确的二进制分发,即.whl基于运行时平台下载和安装的文件。兼容性标签存在于轮子的文件名中。
如果您希望支持多个平台,您可能需要为不同的平台构建单独的轮子。
添加回答
举报
0/150
提交
取消