安装 pip 包或升级 pip 时出现环境错误 [Errno 2]

Posted

技术标签:

【中文标题】安装 pip 包或升级 pip 时出现环境错误 [Errno 2]【英文标题】:Environment Error [Errno 2] while installing pip packages or upgrading pip 【发布时间】:2019-07-17 13:08:35 【问题描述】:

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 /元数据'

然后我 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 ]) 可能会导致减速。 warnings.warn(warning, RequestsDependencyWarning)

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

看来 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

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

【问题讨论】:

我只通过删除本地的pip文件夹然后重新安装来解决它。我知道这不是卸载 pip 的正确方法,但我没有通过pip uninstall pip 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

您可以测试以更新 PythonOpenSSL:

$ sudo python -m easy_install --upgrade pyOpenSSL

如果不行,请执行:

$ sudo pip install --upgrade 加密

但错误:$ sudo pip

之后也这样做:

$ sudo python -m easy_install --upgrade pyOpenSSL

玩得开心,

约翰MRe

【讨论】:

【参考方案3】:

我在构建 Docker 映像(使用 python:3.8 作为基础)时尝试安装软件包时遇到此错误。按照@Johan MRe 的建议升级 pyOpenSSL 为我解决了这个问题。

RUN python3 -m easy_install --upgrade pyOpenSSL

【讨论】:

【参考方案4】:

升级pip时“Could not install packages due to an EnvironmentError”如何处理

首先在管理模式下运行命令行窗口和操作系统:

接下来,

对于windows:使用此命令升级pip

python -m pip install --user --upgrade pip

对于 MacOS:

sudo python -m pip install --user --upgrade pip

【讨论】:

以上是关于安装 pip 包或升级 pip 时出现环境错误 [Errno 2]的主要内容,如果未能解决你的问题,请参考以下文章

使用 pip 安装程序安装 web3 时出现问题(cytoolz 错误)

使用 PIP 时出现“SSL:CERTIFICATE_VERIFY_FAILED”错误

通过 pip 安装时出现 Python Dbus 错误

在 Big Sur 上安装密码学时出现 Pip 错误

通过pip3安装pylibmc时出现错误,opensuse Tumbleweed distribution

安装 pip install gearman 时出现 Python 3.6 错误