安装pip时出现错误:SyntaxError: invalid syntax。

3

在CentOS6上安装virtualenv、requests或pex时,使用pip install命令无法工作。我的Python版本是2.6,pip版本是9.0.1。有没有人能告诉我为什么会出现这种情况?

(pex_build)[root@pex pex_build]# pip install virtualenv

输出:

Traceback (most recent call last):
  File "/opt/pex_build/bin/pip", line 7, in <module>
    from pip._internal import main
  File "/opt/pex_build/lib/python2.6/site-packages/pip/_internal/__init__.py", line 42, in <module>
    from pip._internal import cmdoptions
  File "/opt/pex_build/lib/python2.6/site-packages/pip/_internal/cmdoptions.py", line 16, in <module>
    from pip._internal.index import (
  File "/opt/pex_build/lib/python2.6/site-packages/pip/_internal/index.py", line 526
    {str(c.version) for c in all_candidates},
                      ^
SyntaxError: invalid syntax

指令:

(pex_build) [root@pex pex_build]# pip install requests pex

输出:

Traceback (most recent call last):
  File "/opt/pex_build/bin/pip", line 7, in <module>
    from pip._internal import main
  File "/opt/pex_build/lib/python2.6/site-packages/pip/_internal/__init__.py", line 42, in <module>
    from pip._internal import cmdoptions
  File "/opt/pex_build/lib/python2.6/site-packages/pip/_internal/cmdoptions.py", line 16, in <module>
    from pip._internal.index import (
  File "/opt/pex_build/lib/python2.6/site-packages/pip/_internal/index.py", line 526
    {str(c.version) for c in all_candidates},
                      ^
SyntaxError: invalid syntax

同样地,当尝试获取get-pip.py时,curl也会给出类似的错误。
命令:
(pex_build) [root@pex pex_build]# 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 1602k  100 1602k    0     0  7373k      0 --:--:-- --:--:-- --:--:-- 14.6M

Traceback (most recent call last):
  File "<stdin>", line 20636, in <module>
  File "<stdin>", line 197, in main
  File "<stdin>", line 82, in bootstrap
  File "/tmp/tmp5zrn_f/pip.zip/pip/_internal/__init__.py", line 42, in <module>
  File "/tmp/tmp5zrn_f/pip.zip/pip/_internal/cmdoptions.py", line 16, in <module>
  File "/tmp/tmp5zrn_f/pip.zip/pip/_internal/index.py", line 526
    {str(c.version) for c in all_candidates},
                      ^
SyntaxError: invalid syntax

3
Python 2.6非常非常老,而pip 9.x与其不兼容。 - Nils Werner
考虑升级到Python 2.7或3.5。如果由于依赖/权限问题无法在整个机器上进行升级,请考虑将其安装到本地目录中,然后在那里安装pip和所有所需的软件包。 - touch my body
忘了撤销,我深入了解后发现这不是重复的。 - Morse
2个回答

3

问题在于你的pip版本与Python 2.6不兼容。如果你升级到9.0.3版本,它应该可以正常工作。

pip install pip==9.0.3

如果你无法使用pip升级pip,你也可以使用本地软件包管理器重新安装包,然后升级到pip 9.0.3。

请注意,如果你正在使用虚拟环境,建议你同时升级virtualenv,这样你的虚拟环境中也会有pip 9.0.3。

pip install virtualenv==15.2.0

但要小心不要升级到比9.0.3更高的pip版本或比15.2.0更高的virtualenv版本,因为这些版本已经删除了对Python 2.6的支持,如Prateek所提到的。


2

pip可以与CPython版本2.7、3.3、3.4、3.5、3.6和pypy一起使用。

这意味着pip可以在每个这些次要版本的最新补丁版本上工作。以最佳努力支持先前的补丁版本。

只需在升级到兼容的Python版本后使用以下命令即可。

pip install requests

请查看pip文档获取更多细节信息。

包括@eandersson的评论

或者您可以将pip升级到9.0.3

pip install pip==9.0.3


1
这是不正确的。他提到他正在使用支持Python 2.6的pip 9.0.1。然而,Pip 10不支持Python 2.6。可能值得包括有关如何正确识别他正在运行的版本以及如何降级的说明。 - eandersson
2
实际上,这只是pip 9.0.1中的一个错误。它已经在pip 9.0.3中修复了。 - eandersson

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