Posted By: Anonymous
I’m installing several Python packages in Ubuntu 12.04 using the following
numpy>=1.8.2,<2.0.0 matplotlib>=1.3.1,<2.0.0 scipy>=0.14.0,<1.0.0 astroML>=0.2,<1.0 scikit-learn>=0.14.1,<1.0.0 rpy2>=2.4.3,<3.0.0
and these two commands:
$ pip install --download=/tmp -r requirements.txt $ pip install --user --no-index --find-links=/tmp -r requirements.txt
(the first one downloads the packages and the second one installs them).
The process is frequently stopped with the error:
Could not find a version that satisfies the requirement <package> (from matplotlib<2.0.0,>=1.3.1->-r requirements.txt (line 2)) (from versions: ) No matching distribution found for <package> (from matplotlib<2.0.0,>=1.3.1->-r requirements.txt (line 2))
which I fix manually with:
pip install --user <package>
and then run the second
pip install command again.
But that only works for that particular package. When I run the second
pip install command again, the process is stopped now complaining about another required package and I need to repeat the process again, ie: install the new required package manually (with the command above) and then run the second
pip install command.
So far I’ve had to manually install
nose, and now it’s complaining about needing
Is there a way to tell
pip to automatically install all needed dependencies so I don’t have to do it manually one by one?
Add: This only happens in Ubuntu 12.04 BTW. In Ubuntu 14.04 the
pip install commands applied on the
requirements.txt file work without issues.
This approach (having all dependencies in a directory and not downloading from an index) only works when the directory contains all packages. The directory should therefore contain all dependencies but also all packages that those dependencies depend on (e.g.,
You should therefore manually include these in
requirements.txt (so that the first step downloads them explicitly) or you should install all packages using PyPI and then
pip freeze > requirements.txt to store the list of all packages needed.