在哪种情况下pip安装建筑轮?

时间:2016-02-03 06:03:03

标签: python pip

我发现在不同的文件夹中,有时候“pip install”会构建需要花费大量时间的轮子,而有时却不会。我不知道为什么会这样以及如何控制它。任何人都可以提供帮助。

我使用的命令:“bin / python -m pip install -r ../requirements.txt”(由于shebang行长度限制,所以不要直接使用pip)

没有构建轮子的输出(只需几秒钟)

Collecting numpy==1.10.4 (from -r ../requirements.txt (line 1))
Installing collected packages: numpy
Successfully installed numpy-1.10.4

带有构建轮的输出(至少需要2分钟)

Collecting numpy==1.10.4 (from -r ../requirements.txt (line 1))
  Downloading numpy-1.10.4.tar.gz (4.1MB)
    100% |████████████████████████████████| 4.1MB 92kB/s
Building wheels for collected packages: numpy
  Running setup.py bdist_wheel for numpy ... done
  Stored in directory: /root/.cache/pip/wheels/66/f5/d7/f6ddd78b61037fcb51a3e32c9cd276e292343cdd62d5384efd
Successfully built numpy
Installing collected packages: numpy
Successfully installed numpy-1.10.4

requirements.tt

的内容
numpy==1.10.4

3 个答案:

答案 0 :(得分:10)

今天我遇到了一个问题,即没有正确安装软件包,因为事实证明它的构建过程会产生错误的轮组,即使直接安装工作正常。

我做了一些探讨,事实证明,截至目前(pip == 8.1.2),没有直接的方法可以控制pip是否会尝试建立一个转出一个给定的包裹。我找到了relevant source code,显然,当且仅当:

时才使用车轮构建过程
  • 车轮模块可导入
  • 正在使用缓存目录

由于该逻辑,可以通过在安装命令行上传递--no-cache-dir来间接禁用pip对基于轮子的构建的使用。

答案 1 :(得分:4)

I got the answer, it is just the first time that the wheel will be build, after that, it will read from cache

答案 2 :(得分:3)

这取决于你的包是否是一个纯python包(不需要编译任何东西,只是复制文件)或者包含c源代码的包(在这种情况下需要编译并调用编译器)并执行,这需要更长时间。)

http://pythonwheels.com/

您可能还想看看轮子文件:

http://wheel.readthedocs.org/en/latest/