Python重新打包现有的分发包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python重新打包现有的分发包相关的知识,希望对你有一定的参考价值。

我在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”中进行重新打包?

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

答案

为什么不自己从源代码构建分发,而不是尝试解决已经安装的软件包?毕竟,你已经完成了设置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。

以上是关于Python重新打包现有的分发包的主要内容,如果未能解决你的问题,请参考以下文章

服务器 ‘xxxx‘ 已被定义为分发服务器。若要将该服务器重新配置为分发服务器,必须首先卸载现有的分发服务

服务器 ‘xxxx‘ 已被定义为分发服务器。若要将该服务器重新配置为分发服务器,必须首先卸载现有的分发服务

markdown Python分发包到网络,打包

全面学习 Python 包:包的构建与分发

如何打包和分发 python 程序(.py 源代码),以便其他开发人员可以轻松安装所有需要的依赖项?

使用 Jetpack 的 Android 导航组件销毁/重新创建的片段