我正在Ubuntu 12.04中使用以下requirements.txt文件安装几个Python包:

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

下面是两条命令:

$ pip install --download=/tmp -r requirements.txt
$ pip install --user --no-index --find-links=/tmp -r requirements.txt

(第一个程序下载包,第二个程序安装包)。

进程经常被错误停止:

  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))

我手动修复:

pip install --user <package>

然后再次运行第二个PIP安装命令。

但这只适用于特定的包装。当我再次运行第二个pip install命令时,进程停止了,现在抱怨有另一个所需的包,我需要再次重复该过程,即:手动安装新的所需包(使用上面的命令),然后运行第二个pip install命令。

到目前为止,我不得不手动安装6,pytz, nose,现在它抱怨需要mock。

有没有办法告诉pip自动安装所有需要的依赖项,这样我就不必手动一个一个地安装了?

补充:这只发生在Ubuntu 12.04 BTW中。在Ubuntu 14.04中,应用在requirements.txt文件上的pip安装命令可以正常工作。


当前回答

如果发现该包的其他版本可用,则在谷歌中进行搜索 举个例子 我得到错误使用glob,所以我使用glob2代替

其他回答

不一定,但在某些情况下包已经存在。例如- getpass。它不在“pip list”中列出,但可以导入和使用:

如果我尝试pip安装getpass,我会得到以下错误: "找不到满足要求的版本"

经过2个小时的搜索,我找到了一种方法,只需一行命令就可以解决它。你需要知道软件包的版本(只需搜索软件包版本)。

命令:

python3 -m pip install --pre --upgrade PACKAGE==VERSION.VERSION.VERSION

我已经安装了python3,但我在/usr/bin/python中的python仍然是旧的2.7版本

这工作(<pkg>是pyserial在我的情况下):

python3 -m pip install <pkg>

我在安装panda -1.4.3时遇到了一个问题,这个问题是我的python补丁版本。Pandas-1.4.3需要python 3.8.13版本,但不支持3.8.9版本:

python install -r requirements.txt # or pip install pandas==1.4.3
# -> Could not find a version that satisfies...
conda activate my_project # creates a virtual env for a new python version
conda install python=3.8.13 # installing the new python version
python --version # displays 3.8.13
pip install -r python/requirements.txt
# -> pandas installed as expected

Pip从pypi.org安装。

pip install -U -i  https://pypi.org/simple package