首页 > 解决方案 > 安装 pip 包或升级 pip 时出现环境错误 [Errno 2]

问题描述

pip 直到最近都可以正常工作。首先我试图安装一个 pip-package 使用

pip install -e [some-git-link]

我得到了错误

由于 EnvironmentError 无法安装软件包:[Errno 2] 没有这样的文件或目录:'/home/me/.local/lib/python2.7/site-packages/pip-19.0.1.dist-info/METADATA'

然后我 cd'ed 到 site-packages 并且文件夹是空的。确实,我在 dis-packages 中安装了 pip,它的版本是 18.1,而不是 19.0!

我试图通过更新点子

pip install -U pip

但我得到同样的错误。

打字

pip --version

我明白了

/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/init .py :83:RequestsDependencyWarning:旧版本的密码学([1,2,3])可能会导致速度变慢。警告.warn(警告,RequestsDependencyWarning)

来自 /usr/local/lib/python2.7/dist-packages/pip 的 pip 18.1(python 2.7)

所以似乎安装了 pip 18.1。确实,如果我尝试

sudo apt-get install python-pip

我明白了

python-pip 已经是最新版本(8.1.1-2ubuntu0.4)。

0 升级,0 新安装,0 移除,62 未升级。

我想知道所有这些问题是否都来自密码学的警告,所以我试着做

sudo pip install --upgrade cryptography

但显然我回到了同样的环境错误。

标签: pythonpython-2.7pipcryptography

解决方案


你不能使用sudowith pip。使用sudowithpip是自找麻烦。当您这样做时,您将pip与操作系统的包管理器发生争执。当他们与任何人打架时,最不重要的是您的 Python 安装和个人理智。我知道无数教程告诉你sudo pip install,但他们不是你的朋友。维护功能性 Python 安装的唯一安全可靠的方法是让您的操作系统的包管理器管理它想要管理的内容以及使用pip install --user虚拟环境(如果您使用的是 Python 3,则使用其中一个virtualenv或可选)。python -m venv

如果你坚持 sudo install 东西,我真的不能强调你会在你的 Python 安装中不断地遇到一些奇怪的事情(和偶尔的灾难性问题)。学会爱上虚拟环境!您甚至可以修改您的 shell PATH,以便您在环境中安装的东西可以作为命令使用(这通常是人们认为他们需要的原因sudo pip install)。


推荐阅读