一、前言
今天在给一个强化学习Demo配环境时遇到了pip版本的问题,花了很长时间去填坑。总结一下,希望对其他需要的小伙伴有帮助,不对的地方希望小伙伴们批评指正。
二、问题
问题一:from pip import main ImportError: cannot import name 'main
Traceback (most recent call last):
File "/usr/local/bin/pip", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
废话不多说,解决办法:
1.打开终端,cd到pip所在根目录(或者在pip那一级目录下直接右键打开终端)
cd /usr/local/bin/ //我的是在这个目录下,其他小伙伴们的pip可能是/usr/bin/目录下,是的话把local一级去掉就好
2.使用Ubuntu的nano修改pip文件
sudo nano pip //pip默认是只读的,修改时必须加sudo给权限
3.修改pip文件
原文件打开如下图,用键盘上下左右键来控制。
将最后一行sys.exit(main())
改为sys.exit(__main__._main())
Ctrl+O,然后回车保存
Ctrl+X,退出
成功解决!
问题二(和问题一看起来极度类似但不同):from pip ._internal.main import main ImportError: No module named main
Traceback (most recent call last):
File "/usr/local/bin/pip", line 6, in <module>
from pip._internal.main import main
ImportError: No module named main
解决办法:
1.开始我还是像解决第一个问题一样,更改了pip文件,但更改完后直接出现新的错误。
import: not authorized `re' @ error/constitute.c/WriteImage/1028.
import: not authorized `sys' @ error/constitute.c/WriteImage/1028.
from: can't read /var/mail/pip._internal.main /usr/local/bin/pip: 10: /usr/local/bin/pip: Syntax error: "(" unexpected (ex
2.后来发现,原来是在使用nano修改pip文件时在#!/usr/bin/env python
前不小心多打了一个回车,去掉之后这个错误解决。
3.但紧接着来了新的问题Could not install packages due to an EnvironmentError
,心中万马奔腾。不过这个问题比较好解决,只需要更新一下你的pip版本就好。
不过更新前切记把刚才更改的sys.exit(__main__._main())
改回去!
pip install --upgrade pip --user //更新pip命令行
等待更新完成…
成功解决!