我应该相信pip的“成功安装…”吗?

2024-04-26 04:05:21 发布

您现在位置:Python中文网/ 问答频道 /正文

简而言之,pip -vvv install apy报告“已成功安装…”,尽管详细的输出显示Python无法编译某些已安装的文件

下面是pip -vvv install apy输出的最后几行(我删除了一些空行以减少列表的高度):

... 
  Compiling /tmp/ankivenv/lib/python2.7/site-packages/jinja2/asyncfilters.py ...
    File "/tmp/ankivenv/lib/python2.7/site-packages/jinja2/asyncfilters.py", line 8
      async def auto_to_seq(value):
              ^
  SyntaxError: invalid syntax
  
  Compiling /tmp/ankivenv/lib/python2.7/site-packages/jinja2/asyncsupport.py ...
    File "/tmp/ankivenv/lib/python2.7/site-packages/jinja2/asyncsupport.py", line 18
      async def concat_async(async_gen):
              ^
  SyntaxError: invalid syntax

  changing mode of /tmp/ankivenv/bin/flask to 775

Successfully installed Jinja2-2.11.3 MarkupSafe-1.1.1 Werkzeug-1.0.1 apy-0.2.3 click-7.1.2 flask-1.1.4 httplib2-0.19.1 itsdangerous-1.1.0 oauth2-1.9.0.post1 pyparsing-2.4.7
Removed build tracker: '/tmp/pip-req-tracker-3_mlWH'

此外,在得到上面显示的结果之后,我确认python确实无法编译上面错误消息中提到的文件的安装版本。例如:

python -m py_compile /tmp/ankivenv/lib/python2.7/site-packages/jinja2/asyncfilters.py
  File "/tmp/ankivenv/lib/python2.7/site-packages/jinja2/asyncfilters.py", line 8
    async def auto_to_seq(value):
            ^
SyntaxError: invalid syntax

Q:这是我正在使用的pip版本中的一个bug吗?或者上面显示的错误确实可以忽略不计


根据https://stackoverflow.com/a/65871131中给出的建议,我正在为此使用的pip版本是20.3.4。(这些都是在Python 2.7.16下运行的。)

如果有人感兴趣,下面我将给出一个bash脚本,它将复制上述结果

#!/bin/bash

MYVENV=/tmp/ankivenv

deactivate 2>/dev/null
rm -rf "$MYVENV"

export PYTHONWARNINGS=ignore:DEPRECATION

virtualenv --python=/usr/bin/python2 "$MYVENV" || exit $?
source "$MYVENV/bin/activate" || exit $?

##################################################################
# based on https://stackoverflow.com/a/65871131 ##################
curl -sO https://bootstrap.pypa.io/pip/2.7/get-pip.py || return $?
python get-pip.py || return $?
python -m pip install --upgrade 'pip < 21.0' || return $?
##################################################################

pip -vvv install apy