找不到满足选择要求的版本

nad*_*rmx 4 python ubuntu pip virtualenv ubuntu-18.04

我目前正在尝试安装一个需求,它告诉我当我尝试将它们注释掉时找不到它,它会发生在其他人身上。

我刚刚部署了一个Ubuntu 18.04服务器。通过以下命令创建虚拟环境,python3 -m venv --system-site-packages env但每次我尝试运行pip install -r requirements.txt它都会失败

Collecting apparmor==2.12 (from -r requirements.txt (line 1))
  Could not find a version that satisfies the requirement apparmor==2.12 (from -r requirements.txt (line 1)) (from versions: )
No matching distribution found for apparmor==2.12 (from -r requirements.txt (line 1))
Run Code Online (Sandbox Code Playgroud)

如果我尝试安装说它pip install apparmor告诉我

Collecting apparmor
  Could not find a version that satisfies the requirement apparmor (from versions: )
No matching distribution found for apparmor
Run Code Online (Sandbox Code Playgroud)

但是如果我注释掉 apparmor 它会告诉我这个

Collecting apturl==0.5.2 (from -r requirements.txt (line 2))
  Could not find a version that satisfies the requirement apturl==0.5.2 (from -r requirements.txt (line 2)) (from versions: )
No matching distribution found for apturl==0.5.2 (from -r requirements.txt (line 2))
Run Code Online (Sandbox Code Playgroud)

它会随机发生在其他人身上。这些要求是在我的本地提出的,这也不ubuntu 18确定为什么这适用于本地但不适用于新部署。

我还确保它是最新版本的 pip

小智 9

当您不使用虚拟环境来使用 python 时,这是一个常见问题,因此您requirements.txt列出了系统或操作系统的所有 python 软件包,而您必须只拥有项目中的软件包。在某个时刻,您在没有虚拟环境的情况requirements.txt下更新了 ,并使用操作系统和项目中的所有 python 包pip freeze > requirements.txt更新了,并且可能上传到存储库。requirements.txt因此,当您想在另一台计算机上运行并安装所有软件包时,您会遇到这种错误......

ubuntu 中默认安装了 Python,您必须考虑这一点,在其他系统中也必须考虑这一点。

  1. 第一条规则是每次使用虚拟环境“虚拟环境文档
  2. 我知道这很辛苦,但您可以备份requirements.txt并清理它。然后尝试在没有任何软件包的情况下运行您的程序(全新安装),当由于缺少软件包而发生错误时,您添加它并更新pip freeze > requirements.txt

  • 谢谢这对我的一天有帮助 (2认同)

hoe*_*ing 7

apparmor并且apturl是 Ubuntu 软件包,如果您的代码不使用它们的代码,您可以放心地忽略它们;只需将它们从requirements.txt. 如果您的代码依赖于它们,请确保通过apt以下方式安装它们:

apt install -y apparmor apturl && pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)