- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 Windows 7 Enterprise 上使用 Python 3.6.3,当我尝试 pip 安装 Python 包“bitarray”时,输出表明需要 Microsoft Visual C++ Build Tools。我下载并安装了构建工具并安装了 bitarray 没有问题。
这就是问题所在:我现在需要将 bitarray 分发给公司内没有安装 Microsoft Visual C++ Build Tools 但安装了 Python(并且可以使用 pip)的其他员工。
我可以简单地“重新打包”“C:\Python363\Lib\site-packages\bitarray”中的 bitarray 文件夹(其中包含已编译的 .pyd 文件)并将其作为本地包吗?这样我就可以使用带有“file:///”的 pip 来下载包的本地副本,而无需构建工具步骤?
另外,我是否需要将“C:\Python363\Lib\site-packages\bitarray-0.8.1.dist-info”文件夹中的信息合并到重新打包?
在此先感谢您的帮助!!!!斯科特
最佳答案
与其尝试绕过已安装的软件包,不如自己从源代码构建一个发行版?毕竟,您已经完成了设置 C 编译器最困难的部分,剩下的只是您必须键入的一系列命令。这是您可以执行的操作:
克隆 bitarray
的存储库:
$ git clone https://github.com/ilanschnell/bitarray
导航到克隆的存储库:
$ cd bitarray
勾选你要构建的版本标签(最新的是0.8.1):
$ git checkout 0.8.1
确保您安装了 wheel
以便能够构建静态轮:
$ pip install wheel
构建静态轮:
$ python setup.py bdist_wheel
在当前目录中创建了一个新目录dist
,检查里面的内容:
$ ls dist
bitarray-0.8.1-cp36-cp36m-macosx_10_6_intel.whl
(注意:这是我要在我的系统上输入的内容,在 Windows 上用 dir
列出目录,您的文件也应该是 bitarray-0.8.1-cp36-cp36m- win_amd64.whl
如果您是在 64 位系统上构建,或者 bitarray-0.8.1-cp36-cp36m-win32.whl
在 32 位系统上)。
现在您已经构建了一个静态轮,其中包含为 Windows 上的 Python 3.6 编译的 C 扩展。它可以安装在 Windows 上,而无需在目标机器上设置 C 编译器。只需输入
$ pip install bitarray-0.8.1-cp36-cp36m-win_amd64.whl
但是请注意,此 wheel 文件只能安装在 Windows 上,并且只能与 Python 3.6 一起使用。如果您需要为其他设置提供 wheel(例如 Windows 32 位上的 Python 3.5),您需要在正确的目标系统上使用正确的 Python 版本构建另一个 wheel 文件,但步骤是一样的。
如果您没有安装 Git 并且您不能/不想安装它,just download the zipped repository from Github ,解压缩,导航到解压缩的目录并执行步骤 4-6。
关于Python 重新打包现有包以进行分发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49036741/
这个问题在这里已经有了答案: What is the meaning of the "at" (@) prefix on npm packages? (4 个回答) Use of @ symbol i
为什么一些 golang.org 包名称以 x 为前缀?引起我兴趣的具体包裹was bycrypt 我主要担心的是 x 表示类似 eXperimental 的东西,如果我想要稳定的东西,我应该使用一组
我是一名优秀的程序员,十分优秀!