如何重新打包Python的bitarray包以向无VC++构建工具的环境分发?
能否直接重新打包bitarray分发?
当然可以,但得用对方法——你需要打包预编译的二进制wheel包,而不是重新打包源码包,不然同事安装时还是会遇到和你一样的VC Build Tools要求问题。
为什么不能直接打包源码包?
你之前安装bitarray时,因为没有适配你环境的预编译wheel,pip会自动从源码编译安装,这才需要Microsoft Visual C++ Build Tools。如果直接把源码包(比如用sdist生成的.tar.gz或.zip)分发给同事,他们的pip同样会尝试编译源码,还是会报错要求安装VC工具。
正确的打包分发步骤
- 先确保你本地已经安装好
wheel工具:pip install wheel - 用
pip wheel命令打包你本地已经编译好的bitarray:
执行完后,当前目录会生成一个类似pip wheel bitarraybitarray-<版本号>-cp36-cp36m-win_amd64.whl的文件(如果是32位Windows系统,文件名里会是win32)。这个文件名里的cp36对应Python 3.6,win_amd64对应64位系统,要和同事的Python版本、系统位数完全匹配,否则wheel包无法兼容。 - 将生成的
.whl文件发给同事,他们只需要执行以下命令就能直接安装,全程不需要VC Build Tools:pip install bitarray-<版本号>-cp36-cp36m-win_amd64.whl
注意事项
- 如果同事的Python版本不是3.6.x,或者系统位数和你的不同,这个wheel包就无法使用,你需要在对应环境下重新打包。
- 尽量确保同事的Windows系统版本和你一致(都是Win7 Enterprise),同版本Python同位数的wheel一般兼容同系列Windows,但提前测试能避免意外问题。
内容的提问来源于stack exchange,提问作者sheepsqueezers




