Linux中Python和pip的安装及“AttributeError:module 'pip.__main__' has no attribute '_main'错误”

(作者:陈玓玏)

一、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
  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值