get-pip.py 的 curl 不起作用:语法错误
Posted
技术标签:
【中文标题】get-pip.py 的 curl 不起作用:语法错误【英文标题】:curl for get-pip.py does not work: Syntax Error 【发布时间】:2018-10-07 07:31:03 【问题描述】:当我尝试运行时:
[root@pex appliance_ui]# curl https://bootstrap.pypa.io./get-pip.py | python
返回:
% 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。
【问题讨论】:
【参考方案1】:您在python
上找到的 Python 版本不支持集合推导。我可以看到尝试在 Python 2.4 中执行 str('foo') for c in [1,2,3]
时出现相同的错误,而不是在其工作的 2.7 中。
根据here 和the note in this section of the pip installation documentation 的答案,您应该在 2.6 上将此 URL 用于 get-pip.py: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
。
【讨论】:
谢谢!我可以让 curl 工作,但在我的虚拟环境中我无法运行pip install requests pex
,给了我类似的错误。为什么会这样?
没问题。 @AnjanaShivangi 这听起来可能是另一个问题?您可能必须使用命令、正在使用或安装的版本以及遇到的错误打开一个单独的问题。这些软件包的最新版本可能具有setup.py
或其他与 Python 2.6 不兼容的代码。如果它适用于您的原始问题,也请将答案标记为已接受:)以上是关于get-pip.py 的 curl 不起作用:语法错误的主要内容,如果未能解决你的问题,请参考以下文章