get-pip.py 的 curl 不起作用:语法错误

curl for get-pip.py does not work: Syntax Error

当我尝试 运行:

[root@pex appliance_ui]# curl https://bootstrap.pypa.io./get-pip.py | python

它returns:

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1603k  100 1603k    0     0  7006k      0 --:--:-- --:--:-- --:--:-- 13.2M
Traceback (most recent call last):
  File "<stdin>", line 20649, in <module>
  File "<stdin>", line 197, in main
  File "<stdin>", line 82, in bootstrap
  File "/tmp/tmpH39pcu/pip.zip/pip/_internal/__init__.py", line 42, in <module>
  File "/tmp/tmpH39pcu/pip.zip/pip/_internal/cmdoptions.py", line 16, in <module>
  File "/tmp/tmpH39pcu/pip.zip/pip/_internal/index.py", line 526
    {str(c.version) for c in all_candidates},
                      ^
SyntaxError: invalid syntax

此外,

[root@pex appliance_ui]# python get-pip.py --verbose

输出:

python: can't open file 'get-pip.py': [Errno 2] No such file or directory

谁能告诉我为什么会这样? 我有 Python 2.6 和 pip 9.0.1。我的目标是尽快将整个项目升级到 python 3.5。

您在 python 找到的 Python 版本不支持集合理解。我可以看到在 Python 2.4 中尝试执行 {str('foo') for c in [1,2,3]} 时出现相同的错误,而不是在 2.7 中运行。

根据回答 here and the note in this section of the pip installation documentation you should use this URL for get-pip.py on 2.6: https://bootstrap.pypa.io/2.6/get-pip.py

您还可以看到 Python 2.7 是此处列出的最旧的受支持版本:https://pip.pypa.io/en/stable/installing/#python-and-os-compatibility

至于 [Errno 2] No such file or directory,那是因为 curl 将文件内容放在标准输出上,而不是放在您的文件系统上。如果您想下载文件,您可以使用 wget.