【问题标题】:Pipenv "ModuleNotFoundError: No module named 'pip'" after upgrading to python3.7Pipenv "ModuleNotFoundError: No module named 'pip'" 升级到 python3.7 后
【发布时间】:2020-06-24 02:51:16
【问题描述】:

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

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

【问题讨论】:

标签: python ubuntu pip ubuntu-18.04 pipenv


【解决方案1】:
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 &lt;package&gt;pip3 install --user &lt;package&gt;(用于用户级安装)将正常工作。

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

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

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

【讨论】:

  • 我可以在 pipenv 之外运行 pip3 -V。但不在 pipenv 中。
  • 搜索文档
  • 从 Python 3.7.7 升级到 3.8.5 并尝试运行 venv 生成的虚拟环境后,强制安装在 Mac OS 10.14 上为我工作。我认为这可能与符号链接有关。
  • 太棒了python3 get-pip.py --force-reinstall 这行成功了
【解决方案2】:

我在这里找到了答案: Setting up a virtualenv: No module named 'pip'

好像是个bug。

我使用相当于virtualenv venv --no-setuptools 的--re 标志安装pipenv。

然后我在 pipenv 中运行 python get-pip.py

它有效。我现在可以安装包了。

但我不知道为什么……

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    • 2022-12-27
    • 2022-12-27
    相关资源
    最近更新 更多