Python bdist并在不使用PyPi的情况下分发安装包

Chu*_*uck 4 python pip virtualenv

我正在开发一个本身不是非常复杂的系统:只是一个包含一系列包的virtualenv,每个包都有自己的依赖.所有告诉(有依赖),需要安装大约30个包.

以下约束使设置有些复杂化:

  • 互联网无法保证可以访问.实际上我们假设PyPI在安装时不可用.(A非网络的Debian稳定储存库可用的,其允许的virtualenv和公司)
  • 某些包/依赖项具有C扩展,这对应用程序的性能至关重要.
  • 希望预先编译C扩展以避免安装GCC和公司.

在这些约束中,什么是最快,最简单甚至(最好)'正确'的方式来打包(然后安装)python模块依赖?我是否只抓住每个包的来源并自己进行了对话?

San*_*man 5

这个问题有点陈旧,但无论如何,自从pip 1.4版(2013-07-23)以来,已经支持wheel作为二进制分发格式,具有更丰富的界面和更好的支持.对于那些发现这个线程的人,考虑使用轮子代替鸡蛋.

示例用法(来自车轮文档):

要为您的需求及其所有依赖项构建轮子到本地目录:

pip install wheel
pip wheel --wheel-dir=/local/wheels -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

然后只使用你的本地车轮目录(而不是来自PyPI)安装这些要求:

pip install --no-index --find-links=/local/wheels -r requirements.txt
Run Code Online (Sandbox Code Playgroud)