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

悠悠 2022-05-16 09:12 200阅读 0赞

(作者:陈玓玏)

一、Linux中安装Python

最近开始倒腾Linux了,安装好Linux之后的第一步就是安装Python了。

不过Linux系统在这方面特别友好,因为它是自带了Python的,但默认使用的Python是Python2,基本上也不会用Python2了,都是用Python3,所以需要修改一下系统的Python指向。Python3也有很多个版本,如果不知道自己的Python有哪些版本,可以先到**/usr/bin/**这个目录下看一下,一般默认是安装在这里的,然后再重设链接。重设链接的方式如下:

  1. #在桌面右键,打开终端,然后输入以下命令
  2. sudo rm /usr/bin/python # 删除原链接
  3. sudo ln -s /usr/bin/python3.5 /usr/bin/python # 建立新链接,指向自带的Python3.5

直接在命令行输入python,就可以检查python的安装情况了,如果修改成功了,会显示新的版本信息。

二、AttributeError:module ‘pip.main’ has no attribute ‘_main’错误

除了Python,pip必然也是要安装的。最开始我是这么做的,然后就出现了上面的错误,输入以下命令:

  1. sudo apt-get install python-pip python-dev build-essential #下载并安装pip
  2. sudo pip install --upgrade pip #更新pip

更新完pip之后,新版的pip需要按照网上的教程修改配置文件才能用,修改过程如下:

  1. #打开pip的配置文件
  2. #这里一定要记得加sudo,也就是以管理员身份打开,否则没有权限修改文件
  3. sudo gedit /usr/bin/pip
  4. #按照以下内容修改文件的对应部分
  5. from pip import __main__
  6. if __name__ == '__main__':
  7. sys.exit(__main__._main())

在完成这一系列操作之后,我想查看版本,所以直接在命令行输入pip,报了一个错误:

  1. AttributeErrormodule 'pip.__main__' has no attribute '_main'

通过一番搜索,提示可能是因为pip版本高于10.0,要降低pip的版本,通过以下方式来获取特定版本:

  1. python -n pip install --upgrade pip==9.0.3

结果提示我:

  1. You are using pip version 8.1.1,however version 18.0 is available.
  2. You should consider upgrading via the 'pip install --upgrade pip' command.

所以,想了半天办法把版本降下来了,又要把版本升上去,很恶心了。没办法,没加sudo升了一次版本:

  1. pip install --upgrade pip

还是提示同样的错误,于是决定先把pip的配置文件改回原来的样子,再试一次不加sudo的pip更新命令,更新完之后再修改就可以了。最后再输入pip命令,显示正确的版本信息,就成功了,结果竟然用的是pip 18.1的版本,所以其实并不是因为我的版本太低了。

三、Linux中安装pip

所以,正确的安装方法总结为:

  1. sudo apt-get install python-pip python-dev build-essential #下载并安装pip
  2. pip install --upgrade pip #更新pip

更新完pip之后,新版的pip需要按照网上的教程修改配置文件才能用,修改过程如下:

  1. #打开pip的配置文件
  2. #这里一定要记得加sudo,也就是以管理员身份打开,否则没有权限修改文件
  3. sudo gedit /usr/bin/pip
  4. #按照以下内容修改文件的对应部分
  5. from pip import __main__
  6. if __name__ == '__main__':
  7. 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

下面把参考文章里的解决方案贴出来,亲测有效:

  1. 解决方案:
  2. 进入如下目录:
  3. cd /var/lib/dpkg
  4. 删除下面这个文件:
  5. sudo mv info info.baksudo
  6. 重新创建这个文件:
  7. sudo mkdir info
  8. 再次安装:
  9. (1)安装pip3
  10. sudo apt-get install python3-pip
  11. (2)查看pip3版本,看是否安装成功:
  12. pip3 --version

发表评论

表情:
评论列表 (有 0 条评论,200人围观)

还没有评论,来说两句吧...

相关阅读