3

尝试在 CentOS6 上安装 virtualenv、requests 或 pex 时,pip install 不起作用。我在 python2.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

curl 在尝试获取 get-pip.py 时也会给出类似的错误

命令:

(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
4

2 回答 2

3

问题是你的 pip 版本被 Python 2.6 破坏了。如果升级到 9.0.3,它应该可以再次工作。

点安装点==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 所述。

于 2018-04-17T21:53:27.527 回答
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

于 2018-04-17T21:04:06.473 回答