Python重新打包现有的分发包

时间:2018-02-28 19:01:00

标签: python python-3.x pip package

我在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:///"在不需要构建工具步骤的情况下下拉包的本地副本?

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

提前感谢您的帮助!!!! 斯科特

1 个答案:

答案 0 :(得分: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

  7. 现在您已经构建了一个静态轮,其中包含在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版本构建另一个轮盘文件,但步骤将是相同的。

    没有Git的建筑

    如果您没有安装Git而您无法安装它,just download the zipped repository from Github,请将其解压缩,导航到解压缩的目录并执行步骤4- 6。