为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕工程0101907 2021-12-09 10:27:14
我创建了一个包含一些 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基于运行时平台下载和安装的文件。兼容性标签存在于轮子的文件名中。


如果您希望支持多个平台,您可能需要为不同的平台构建单独的轮子。


查看完整回答
反对 回复 2021-12-09
  • 1 回答
  • 0 关注
  • 335 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信