(作者:陈玓玏)
一、Linux中安装Python
最近开始倒腾Linux了,安装好Linux之后的第一步就是安装Python了。
不过Linux系统在这方面特别友好,因为它是自带了Python的,但默认使用的Python是Python2,基本上也不会用Python2了,都是用Python3,所以需要修改一下系统的Python指向。Python3也有很多个版本,如果不知道自己的Python有哪些版本,可以先到**/usr/bin/**这个目录下看一下,一般默认是安装在这里的,然后再重设链接。重设链接的方式如下:
#在桌面右键,打开终端,然后输入以下命令
sudo rm /usr/bin/python # 删除原链接
sudo ln -s /usr/bin/python3.5 /usr/bin/python # 建立新链接,指向自带的Python3.5
直接在命令行输入python,就可以检查python的安装情况了,如果修改成功了,会显示新的版本信息。
二、AttributeError:module ‘pip.main’ has no attribute '_main’错误
除了Python,pip必然也是要安装的。最开始我是这么做的,然后就出现了上面的错误,输入以下命令:
sudo apt-get install python-pip python-dev build-essential #下载并安装pip
sudo pip install --upgrade pip #更新pip
更新完pip之后,新版的pip需要按照网上的教程修改配置文件才能用,修改过程如下:
#打开pip的配置文件
#这里一定要记得加sudo,也就是以管理员身份打开,否则没有权限修改文件
sudo gedit /usr/bin/pip
#按照以下内容修改文件的对应部分
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
在完成这一系列操作之后,我想查看版本,所以直接在命令行输入pip,报了一个错误:
AttributeError:module 'pip.__main__' has no attribute '_main'
通过一番搜索,提示可能是因为pip版本高于10.0,要降低pip的版本,通过以下方式来获取特定版本:
python -n pip install --upgrade pip==9.0.3
结果提示我:
You are using pip version 8.1.1,however version 18.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
所以,想了半天办法把版本降下来了,又要把版本升上去,很恶心了。没办法,没加sudo升了一次版本:
pip install --upgrade pip
还是提示同样的错误,于是决定先把pip的配置文件改回原来的样子,再试一次不加sudo的pip更新命令,更新完之后再修改就可以了。最后再输入pip命令,显示正确的版本信息,就成功了,结果竟然用的是pip 18.1的版本,所以其实并不是因为我的版本太低了。
三、Linux中安装pip
所以,正确的安装方法总结为:
sudo apt-get install python-pip python-dev build-essential #下载并安装pip
pip install --upgrade pip #更新pip
更新完pip之后,新版的pip需要按照网上的教程修改配置文件才能用,修改过程如下:
#打开pip的配置文件
#这里一定要记得加sudo,也就是以管理员身份打开,否则没有权限修改文件
sudo gedit /usr/bin/pip
#按照以下内容修改文件的对应部分
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
如果上面的错,就把文件先改回去,多更新几遍,然后再按这个方法修改文件就可以了,直到你输入pip会提示你pip的各种命令使用方法,就成功了。
四、 Python3对应的pip及E: Sub-process /usr/bin/dpkg returned an error code (1)错误
当linux中的python升级为python3之后,相应的pip也应当升级为python3-pip,如果是升级为安装python-pip,会报"E: Sub-process /usr/bin/dpkg returned an error code (1) "的错误。应当使用apt-get install python3-pip
来安装python3对应的pip。
但是使用apt-get install python3-pip来安装python3对应的pip之后,还是出现了上面的问题,采用以下方法解决:https://www.cnblogs.com/ilym/p/8387561.html 。然后重新安装python3-pip,并且使用时不能使用pip --version查看版本,应当用pip3 --version,后面所有pip都应该用pip3命令,比如pip3 install numpy
。
下面把参考文章里的解决方案贴出来,亲测有效:
解决方案:
进入如下目录:
cd /var/lib/dpkg
删除下面这个文件:
sudo mv info info.baksudo
重新创建这个文件:
sudo mkdir info
再次安装:
(1)安装pip3:
sudo apt-get install python3-pip
(2)查看pip3版本,看是否安装成功:
pip3 --version