I found that in different folders, sometimes "pip install" will build wheel which take a lot of time, while sometimes it won't. I'm not sure why's that and how to control that. Anyone can help on this.
The command I use: "bin/python -m pip install -r ../requirements.txt" (due to shebang line length limitation, so don't use pip directly)
The output without building wheel (just take a few seconds)
Collecting numpy==1.10.4 (from -r ../requirements.txt (line 1))
Installing collected packages: numpy
Successfully installed numpy-1.10.4
The output with building wheel (take at least 2 minutes)
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
The contents of requirements.tt
numpy==1.10.4
Today I encountered a problem where a package wasn't being installed properly because it turns out that its build process generates incorrect wheel packages, even though direct installation works just fine.
I did a bit of poking around, and it turns out that as of now (
pip == 8.1.2
), there isn't a direct way to control whether or notpip
will try to build a wheel out of a given package. I found the relevant source code, and apparently, the wheel build process is used if and only if:As a result of that logic, one can indirectly disable pip's use of wheel-based builds by passing
--no-cache-dir
on the install command line.I got the answer, it is just the first time that the wheel will be build, after that, it will read from cache
This depends on whether your package is a pure python package (without the need to compile anything, just copy the files somewhere) or a package which also includes c source code (in which case a compilation is necessary and a compiler is called and executed, which takes longer).
http://pythonwheels.com/
You may also want to have a look at the wheel docu:
http://wheel.readthedocs.org/en/latest/