导入错误:安装 python3.6 和 pipenv 后无法导入名称“main”

Ban*_* 71 0 python python3 pip

安装 python3.6 和 pipenv 后,我尝试requests使用命令进行安装pip3 install requests并收到此错误-

`Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'`
Run Code Online (Sandbox Code Playgroud)

这是我安装python3.6的方法

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get install libssl-dev openssl libreadline-dev

$ cd ~

$ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

$ tar zxf Python-3.6.1.tgz

$ cd Python-3.6.1

$ ./configure

$ make

$ sudo make install
Run Code Online (Sandbox Code Playgroud)

这是我如何安装 pip env- pip3 install pipenv

在那之后,我开始收到那个错误。我尝试使用以下命令卸载 python、python3、python-pip、python3-pip

$ sudo apt purge python

$ sudo apt purge python3

$ sudo apt purge python-pip

$ sudo apt purge python3-pip
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令再次安装它们 $ sudo apt install python

$ sudo apt install python3

$ sudo apt install python-pip

$ sudo apt install python3-pip
Run Code Online (Sandbox Code Playgroud)

但仍然得到那个错误。我也总是sudo apt-get update在使用这些命令之前使用过。再次安装python3后。当我使用命令检查版本时,python3 -V它显示python 3.6 如何解决此问题?

小智 6

首先,检查文件的位置:

$ which pip
path -> /usr/bin/pip
Run Code Online (Sandbox Code Playgroud)

然后,打开终端并输入:

$ cd /usr/bin/    --> (path of pip)
$ sudo nano pip
Run Code Online (Sandbox Code Playgroud)

在文件中,您将看到:

import sys
from pip import main
if __name__ == '__main__':
     sys.exit(main())
Run Code Online (Sandbox Code Playgroud)

您必须更改为:

import sys
from pip import __main__
if __name__ == '__main__':
     sys.exit(__main__._main())
Run Code Online (Sandbox Code Playgroud)

保存更改并退出