【问题标题】:messed up pip for python 2.7.16 and upgraded it to pip v 21.1.2搞砸了 python 2.7.16 的 pip 并将其升级到 pip v 21.1.2
【发布时间】:2021-08-28 14:49:21
【问题描述】:

规格:

macOs BigSur

Iterm2 与 ohmyzsh

预装了 python2.7.16 和 python 3.9.5

问题:

我在没有 pyenv 的情况下升级了 pip,所以现在 pip 和 pip3 都指的是 python 3.9.5

我在 .zshrc 文件中为 python 3.9.5 设置了一个别名

我也用pip安装flask

问题:

我要为 python2.7.16 升级 pip 吗?

或者用pip重新安装python2.7.16?

我知道我一定用过 pyenv 但是;现在有可能吗?在已经安装了 2 个版本之后?

* system (set by /Users/johnDoe/.pyenv/version)
➜  ~ python2 --version
Python 2.7.16
➜  ~ python3 --version
Python 3.9.5
➜  ~ pip --version
pip 21.1.2 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)
➜  ~ pip3 --version
pip 21.1.2 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)
➜  ~ pip freeze
click==8.0.1
Flask==2.0.1
itsdangerous==2.0.1
Jinja2==3.0.1
MarkupSafe==2.0.1
Werkzeug==2.0.1

➜  ~ where python
python: aliased to /usr/local/bin/python3
/usr/bin/python
➜  ~ where python3
/usr/local/bin/python3
/usr/local/bin/python3
/usr/bin/python3
➜  ~ where pip
pip: aliased to /usr/local/bin/pip3
/usr/local/bin/pip
/usr/local/bin/pip
➜  ~ where pip3
/usr/local/bin/pip3
/usr/local/bin/pip3
/usr/bin/pip3
➜  ~ which pip
pip: aliased to /usr/local/bin/pip3
➜  ~ which pip3
/usr/local/bin/pip3
➜  ~ which python
python: aliased to /usr/local/bin/python3
➜  ~ which python3
/usr/local/bin/python3
➜  ~ which python2
/usr/bin/python2
➜  ~ where flask
/usr/local/bin/flask
/usr/local/bin/flask
➜  ~ which flask
/usr/local/bin/flask

【问题讨论】:

  • 我建议您检查您的 Python 2.7 实例的 pip 版本。您可以通过python2 -m pip list 查询。我认为 pip 不会让你在不先检查所有依赖项的情况下安装它自己的版本。
  • 在 SO 上找到这个:stackoverflow.com/questions/51694205/…
  • 感谢您添加which 命令列表。这确实有助于您找到答案。
  • 为此,我会检查您的 PATH 环境变量。它可能有/usr/local/bin 多次。我仍在使用 Mojave(32 位应用程序),但我认为基本上事情的工作方式相同。
  • 感谢 Ben Y,感谢您的时间和精力 :)

标签: python macos pip


【解决方案1】:

您应该将 Python 2 安装的 pip 包降级为 Pip 21.0 dropped supported for Python 2

由于某种原因,您系统上的 pip 命令指的是 Python 3 安装。有人会认为会有两个命令,pip2pip3,就像 Python 解释器一样。

因此,运行以下命令将 Pip for Python 2 降级到最后支持的版本:

python2 -m pip install "pip<21.0"

这里pip 被称为“作为一个模块”通过 python2。这确保它使用 Python 2 安装的 Pip 包管理器,而不是 Python 3 的(单独的)包管理器。

【讨论】:

  • 这就是我得到的➜ ~ python2 -m pip install "pip&lt;21.0" /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: No module named pip
  • 看起来您的 Python 2.7 环境没有 pip。您可能需要使用 python 2.7 运行引导脚本才能将其安装到那里。 (我认为它被称为get_pip.py
  • 如果它不在那里,我想我不需要它。正确的?因为我只需要它用于系统(macOs)我不会使用它,只使用python 3,所以这样离开它是安全的吗?
【解决方案2】:

除了不再支持 Python 2 系列这一事实之外,您是否检查过 Python 2.7 的 pip 是否别名为 pip2?您似乎仍然可以使用 python2 访问 2.7 解释器,因此运行 pip 的另一种方法是 python2 -m pip &lt;command&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 2013-04-20
    • 2014-12-05
    • 2019-03-20
    • 1970-01-01
    • 2018-07-30
    • 2020-10-22
    相关资源
    最近更新 更多