Pipenv“ModuleNotFoundError:升级到python3.7后没有名为'pip'的模块”

JOH*_*HN 5 python ubuntu pip pipenv ubuntu-18.04

我使用的是 ubuntu 18。默认的 python3 版本是 3.6。我今天更新到 3.7 并更新替代品以指向 python3.7。

我可以通过键入 python3 来使用 python3.7。我也可以使用 pip3 --version (20.0.2)。

我可以使用 pipenv shell 激活虚拟环境。但我无法使用 pipenv install 安装包。它给了我以下错误:

pipenv.exceptions.InstallError]: ['Traceback (most recent call last):', '  File "/home/johnchan/.local/share/virtualenvs/src-lkQYyAWf/bin/pip", line 5, in <module>', '    from p
ip._internal.cli.main import main', "ModuleNotFoundError: No module named 'pip'"]
ERROR: ERROR: Package installation failed...
Run Code Online (Sandbox Code Playgroud)

运行 which pip3:/usr/local/bin/pip3 运行 which pipenv:/usr/local/bin/pipenv

在 pipenv 中输入 pip3 给出:

Traceback (most recent call last):
  File "/home/johnchan/.local/share/virtualenvs/src-lkQYyAWf/bin/pip3", line 5, in <module>
    from pip._internal.cli.main import main
ModuleNotFoundError: No module named 'pip'
Run Code Online (Sandbox Code Playgroud)

Sha*_*ngh 9

python2 -m pip install --user --upgrade pip

python3 -m pip install --user --upgrade pip
Run Code Online (Sandbox Code Playgroud)

升级 pip(或 pip3,在本例中)后,如果发生以下情况:

$ ~ pip3 -V
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 7, in <module>
    from pip._internal import main
ModuleNotFoundError: No module named 'pip._internal'
Run Code Online (Sandbox Code Playgroud)

强制重新安装pip:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall
Run Code Online (Sandbox Code Playgroud)

验证安装:

$ ~ pip3 -V
pip 10.0.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
Run Code Online (Sandbox Code Playgroud)

现在pip3 install <package>pip3 install --user <package>(对于用户级安装)将正常工作。

永远不应该有任何理由需要在提升模式下运行 pip。

(注意:对于 Python 2.7,只需将 python 替换为 python3,将 pip 替换为 pip3)

在 macOS 上也有同样的问题,这是跨平台的常见问题。