Python重新打包现有的分发包

问题描述 投票:2回答:1

我在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”(包含已编译的.pyd文件)中的bitarray文件夹,并将其设为本地包吗?这样我可以使用带有“file:///”的pip来下载包的本地副本而无需构建工具步骤吗?

另外,我是否需要将信息合并到文件夹“C:\ Python363 \ Lib \ site-packages \ bitarray-0.8.1.dist-info”中进行重新打包?

在此先感谢您的帮助!!!!斯科特

python python-3.x pip package
1个回答
2
投票

为什么不自己从源代码构建分发,而不是尝试解决已经安装的软件包?毕竟,你已经完成了设置C编译器最困难的部分,其余部分只是你必须输入的一系列命令。这是你可以做的:

  1. 克隆bitarray的存储库: $ git clone https://github.com/ilanschnell/bitarray
  2. 导航到克隆的存储库: $ cd bitarray
  3. 签出要构建的版本标记(最新版本为0.8.1): $ git checkout 0.8.1
  4. 确保安装了wheel以便能够构建静态滚轮: $ pip install wheel
  5. 构建静态轮: $ python setup.py bdist_wheel
  6. 在当前的目录中创建了一个新目录dist,检查内部是什么: $ ls dist bitarray-0.8.1-cp36-cp36m-macosx_10_6_intel.whl (注意:这是我在我的系统上输入的内容,在Windows上用dir列出目录,如果你在64位系统上构建你的文件应该是bitarray-0.8.1-cp36-cp36m-win_amd64.whl,或者在32位系统上应该是bitarray-0.8.1-cp36-cp36m-win32.whl)。

现在,您已经构建了一个静态轮,其中包含在Windows上为Python 3.6编译的C扩展。它可以安装在Windows上,而无需在目标计算机上设置C编译器。输入

$ pip install bitarray-0.8.1-cp36-cp36m-win_amd64.whl

但请注意,此wheel文件只能在Windows上安装,并且只能安装在Python 3.6中。如果您需要为另一个设置提供一个轮子(如Windows 32位上的Python 3.5),您需要在正确的目标系统上使用正确的Python版本构建另一个轮盘文件,但步骤将是相同的。

Building without Git

如果您没有安装Git并且您不能/不想安装它,just download the zipped repository from Github,解压缩它,导航到解压缩的目录并执行步骤4-6。

© www.soinside.com 2019 - 2024. All rights reserved.