无法在Python 2.7中安装pip?

17

我想使用一个与Python 2.7兼容(但不是3.8)的Python脚本。

我需要pip来使脚本工作,但看起来我不能再安装pip了?我尝试使用get-pip.py,但它不起作用:

user@DESKTOP-J9T7UBF
$ get-pip.py
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
c:\users\user\appdata\local\temp\tmp2kztqk\pip.zip\pip\_vendor\urllib3\util\ssl_.py:387: SNIMissingWarning: An HTTPS request has been made, but the SNI (Server Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings

Python 2.x 已经关闭,并且自2021年1月1日起不再提供支持和维护。 - mhhabib
2
是的,我知道,但是没有办法继续使用仅与2.7兼容的脚本吗? - colorf
2
这真的是“全部”输出吗?最后一行是一个警告,而不是一个错误。 - AKX
你可以降级你的pip并以这种方式安装包。 - Sachin Rajput
最好转换到Python 3。尝试使用https://docs.python.org/3/library/2to3.html 进行转换。 - Conans
你应该下载与Python2.7兼容的pip版本:curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py - DPalharini
9个回答

16
pip install --upgrade "pip < 21.0"

这应该是被接受的答案。 - Karel Křesťan
16
为什么应该接受它?如果您尚未安装pip,则不可能要求pip自行升级。 - Arunas

8
最新的pip已经不再支持Python 2,您无法使用Python 2.7通过get-pip.py安装最新版本的pip。
更新:在这里找到了一个答案,其中包含Python 2.7的脚本https://dev59.com/GlEG5IYBdhLWcg3wct9F#65866547
您应该升级到Python 3。如果您使用只有Python 2.7的Linux发行版,可以使用Linux软件包管理器。注意 - 它会安装一个比上述脚本提供的旧版本的Pip。
如果您在Linux上使用软件包管理器安装了Python,则应始终使用相同的源为该Python安装安装pip。 https://pip.pypa.io/en/stable/installing/ --> https://packaging.python.org/guides/installing-using-linux-tools/
# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1883k  100 1883k    0     0  6584k      0 --:--:-- --:--:-- --:--:-- 6584k

# python get-pip.py --user

Traceback (most recent call last):
  File "get-pip.py", line 24226, in <module>
    main()
  File "get-pip.py", line 199, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    from pip._internal.cli.main import main as pip_entry_point
  File "/tmp/tmpyG_UJ3/pip.zip/pip/_internal/cli/main.py", line 60
    sys.stderr.write(f"ERROR: {exc}")
                                   ^
SyntaxError: invalid syntax

# sudo apt-get install python-pip
# python -m pip --version
pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)

4

是的,pip已经停止支持Python 2.7。如果你仍然想在Python 2.7中使用它,降级pip可以帮助你:

sudo easy_install pip==20.3.4

3

另一种基于get-pip.py的工作解决方案,不会降级python3 pip版本:

curl 'https://raw.githubusercontent.com/pypa/get-pip/20.3.4/get-pip.py' -o get-pip.py
python2 get-pip.py

解释:pip 21.0在2021年1月已停止支持Python 2.7。


3

一个可行的解决方案:

  1. 安装Python2

  2. 安装Python3 (是的,版本为3)

  3. 为Python3安装一个旧版的pip (例如版本9): python3 -m pip install --upgrade "pip==9"

  4. 查找pip安装的位置: python3 -m pip show pip

  5. 将其复制到Python2的PATH中:

    sudo cp -r /home/usr/.local/lib/python3.8/site-packages/pip-9.0.0.dist-info/ /usr/local/lib/python2.7/dist-packages/

    sudo cp -r /home/raczb/.local/lib/python3.8/site-packages/pip /usr/local/lib/python2.7/dist-packages/

  6. 检查: python2.7 -m pip --version

  7. 重新升级Python3的pip。


1

PIP可以使用以下命令在Python2.7中安装

python2.7 -m ensurepip --default-pip

0
问题似乎是没有指定 pip 的特定版本,因此脚本试图安装最新版本(21或更高版本)。尝试指定旧版本,例如:
python get-pip.py 'pip==20.3.1'

已记录:https://github.com/pypa/get-pip


谢谢你的回答。 我尝试指定一个旧版本,但是出现了“ERROR: Invalid requirement: "'pip==20.3.1'"(我尝试了不同的版本)。 - colorf
尝试指定要运行的特定Python版本,例如 python2.7 get-pip.py - ELinda

0
  1. 这个脚本只能在Python 2.7上运行吗?尝试更新脚本到非废弃版本,然后运行它。

  2. 打开Python 2.7安装程序,进入高级选项并查找“安装pip”复选框,因为在Python的后续版本中确实带有“安装pip”复选框,在高级选项中。

  3. 尝试通过手动方法获取模块,即查看所需模块的网站并安装到C:\Python27\Scripts

如果以上解决方案都无法帮助您,建议您参考this article。我要告诉您,Python 2.7从2020年1月1日起被视为废弃版本。


0
从今天开始,你不能再从安装程序本身安装或降级pip。 解决方案:
步骤1:如果你有一个可用的较旧版本的Python,请列出你拥有或需要的所有模块(如果你换到另一台电脑上进行未来项目时会很有用)。
步骤2:下载并解压缩setuptools-44.1.1(因为pip需要它),然后使用具有管理员权限的Powershell进入setup.py文件所在位置进行安装。使用以下命令: py -2.7 setup.py install
步骤3:下载并解压缩pip-20.3.4,并重复步骤2中的Powershell过程。
现在你已经安装了最新的pip 2.7版本。
我觉得现在我必须手动下载我所拥有和需要的所有Python 2.7模块,这样我才能可靠地再次安装它们,或者在另一台计算机上安装,因为这些版本已不再受支持。 很多人建议升级到新版本,但他们似乎不明白的是,许多其他软件API需要旧版本。我们中的许多人也没有钱升级软件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接