python - 'pip' 连接到 Anaconda。我该如何改回来?
问题描述
我使用的是 Windows 10。我在系统范围内有 python 3.5.4,在 Anaconda 中有 Python 3.6.6。系统范围的pip
命令最近以某种方式“连接”到了 Anaconda 路径。也就是说,当我打开cmd
并输入时pip
,它会尝试在 Anaconda 中安装 3.6.6 Python,而不是在系统范围内安装 3.5.4。如何连接pip
回 3.5.4 版本?
C:\Users\h473>pip --version
pip 19.0.3 from c:\users\h473\appdata\local\continuum\anaconda3\lib\site-packages\pip (python 3.6)
C:\Users\h473>python
Python 3.5.4 (v3.5.4:3f56838, Aug 8 2017, 02:17:05) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
当我尝试pip
通过以管理员身份运行 cmd 进行升级时,出现以下错误:
C:\Windows\system32>python -m pip install --upgrade pip
Traceback (most recent call last):
File "C:\Users\h473\AppData\Local\Programs\Python\Python35\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "C:\Users\h473\AppData\Local\Programs\Python\Python35\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\h473\AppData\Local\Programs\Python\Python35\lib\site-packages\pip\__main__.py", line 16, in <module>
from pip._internal import main as _main # isort:skip # noqa
ImportError: cannot import name 'main'
解决方案
我必须重新安装pip
才能使其与系统范围的 Python 连接。
但这也不简单。由于pip
连接到 Anaconda 的 Python,我不能这样做pip uninstall pip
,因为那样会卸载 Anaconda 的pip
.
所以基本上我必须删除 2 个名为pip
和pip-<version>.dist-info
在系统范围内安装的路径中的文件夹pip
(在我的情况下是C:\Users\h473\AppData\Local\Programs\Python\Python35\Lib\site-packages
)。然后我可以pip
再次安装。
但是,为了安全起见,我在某处剪切并粘贴了 2 个文件夹(以防出现问题)。安装步骤pip
:
- 从https://bootstrap.pypa.io/get-pip.py保存文件
python get-pip.py
您可以通过检查版本来验证它是否有效pip
,如下所示,现在是 3.5 并显示系统范围 Python 的路径,而不是问题中的 3.6 和 Anaconda 的路径:
C:\Users\h473\Downloads>pip --version
pip 19.0.3 from c:\users\h473\appdata\local\programs\python\python35\lib\site-packages\pip (python 3.5)
推荐阅读
- python - 当且仅当尊重最内层列表中的唯一性时,有效地更新嵌入文档列表中的文档 ListField
- php - 使用 PHP 的世博会推送通知
- java - 检查空字符串 Java
- google-sheets - 遍历谷歌表格中的一组值
- python - python将版本号增加0.0.1
- javascript - 使用 laravel 项目实现 mdbootstrap 使其在 IE11 中工作
- asp.net-mvc - 即使在成功验证并登录后,Authorize 关键字也不提供访问权限并重定向到登录页面
- python - 我能做些什么来摆脱'int'对象在我的主函数def模型中是不可下标的错误:
- java - 数据格式在同一个json中发生变化
- kubernetes - 如何在 Kubernetes 中禁用部署