python - 安装 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
但显然我回到了同样的环境错误。
解决方案
你不能使用sudo
with pip
。使用sudo
withpip
是自找麻烦。当您这样做时,您将pip
与操作系统的包管理器发生争执。当他们与任何人打架时,最不重要的是您的 Python 安装和个人理智。我知道无数教程告诉你sudo pip install
,但他们不是你的朋友。维护功能性 Python 安装的唯一安全可靠的方法是让您的操作系统的包管理器管理它想要管理的内容以及使用pip install --user
虚拟环境(如果您使用的是 Python 3,则使用其中一个virtualenv
或可选)。python -m venv
如果你坚持 sudo install 东西,我真的不能强调你会在你的 Python 安装中不断地遇到一些奇怪的事情(和偶尔的灾难性问题)。学会爱上虚拟环境!您甚至可以修改您的 shell PATH
,以便您在环境中安装的东西可以作为命令使用(这通常是人们认为他们需要的原因sudo pip install
)。
推荐阅读
- docker - 更改 Docker 上 Vue.js 应用程序的默认端口
- python - python - 如何在使用kill命令终止时退出python脚本中的函数?
- html - 如果文件类型不为空,如何删除验证
- ocaml - OCAML 功能无法正确打印
- javascript - 为什么地图功能在我的 React 应用程序中不起作用?
- python - 在python中实现欧拉方法
- c# - 使用 Html Agility Pack 从 Web 获取文本
- javascript - 访问控制允许来源 | 获取 JS
- vba - VBA - 打印时文本更改位置
- matlab - Matlab,我在 matlab if-else 脚本中有错误。我无法保存并运行