Workaround
As a workaround you can create file _manylinux.py
in current workdir, or in the site-packages
with following content:
manylinux1_compatible = False
This will ensure that manylinux1 wheels won't be downloaded when you run your commands:
pip wheel -w path/to/wheeldir -f path/to/wheeldir -r requirements.txt
You don't really need to use two commands pip install --download
and pip wheel
, but you can use single command above. (please note, that pip install --download
is deprecated in favor of pip download
command).
Command as I suggested will:
- Check if wheel already exists in
path/to/wheeldir
and will not touch that wheel.
- If new version was detected in requirements file (or you can replace
-r requirements.txt
with package and exact version package==X.X.X
) and wheel is universal -- it will download that wheel and store it into path/to/wheeldir
.
- If package requires compiling (example
numpy
, or matplotlib
) -- source tgz will be downloaded and pip will build the wheel, and resulting wheel will be stored in the path/to/wheeldir
.
I've tested this solution, which was [suggested in the pypa/pip#3689. It is not the solution we need, but it is workable and I use it.
Where can you put _manylinux.py
file?
PIP attempts to import _manylinux module.
Q: Where Python will look for it?
A: Python follows the module search path.
So you can put your file in following locations:
- current work dir.
- Path in your
PYTHONPATH
.
- Installation default path.
First two paths are simple, but how you find your installation default path? Simply run following command:
python -c "import os.path as p;print(p.dirname(p.realpath(p.__file__)))"
Hope, this helps.