首页 > 解决方案 > Pipenv "ModuleNotFoundError: No module named 'pip'" 升级到 python3.7 后

问题描述

我使用的是 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...

运行 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'

标签: pythonubuntupipubuntu-18.04pipenv

解决方案


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

python3 -m pip install --user --upgrade pip

升级 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'

强制重新安装 pip:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall

验证安装:

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

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

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

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

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


推荐阅读