以下是堆栈跟踪,请提出建议 我的python版本是2.7
-----------------
pylint
Traceback (most recent call last):
File "E:\Python27\Scripts\pylint-script.py", line 11, in <module>
load_entry_point('pylint==2.0.0', 'console_scripts', 'pylint')()
File "E:\Python27\lib\site-packages\pylint-2.0.0-py2.7.egg\pylint\__init__.py"
, line 17, in run_pylint
from pylint.lint import Run
File "E:\Python27\lib\site-packages\pylint-2.0.0-py2.7.egg\pylint\lint.py", li
ne 75, in <module>
import astroid
File "E:\Python27\lib\site-packages\astroid-2.0.1-py2.7.egg\astroid\__init__.p
y", line 59, in <module>
from astroid.exceptions import *
File "E:\Python27\lib\site-packages\astroid-2.0.1-py2.7.egg\astroid\exceptions
.py", line 13, in <module>
from astroid import util
File "E:\Python27\lib\site-packages\astroid-2.0.1-py2.7.egg\astroid\util.py",
line 148
yield from islice(iterator, size)
^
SyntaxError: invalid syntax
答案 0 :(得分:4)
pylint
2.0.0至少需要Python 3.4。 1
最近一次支持Python 2.7的版本是1.9.2。因此,您的解决方法是将其降级到1.9.2。
您看到的特定错误消息是因为yield from
已添加到Python 3.3中的语言中,因此使用它的代码无法在2.7中运行。但是可能还有很多其他错误。毕竟,开发人员放弃2.7支持的唯一原因是他们可以使用新的语言功能。
如果您使用Python 2使用pip install pylint
或py -m pip install pylint
安装它,则应该自动安装1.9.2而不是2.0.0,否则,将自动安装应该失败而不是看起来成功。 (当我自己测试时,就是这样。)
但是,使用旧版本的pip
进行安装可能会导致此问题。如果是这样,请升级您的pip
和setuptools
。 (您肯定至少需要pip
10和setuptools
30…,但是通常您希望有可用的最新版本,所以就让它来做吧。)
py -m pip install --upgrade pip setuptools
如果这是您的问题,那么您应该已经看到过警告,例如You are using pip version 6.0, however version 18.0 is available.
,该警告看起来并不重要,但尤其是如果您使用的是2.7(或类似情况,如果您使用的是喜欢跟上最新趋势并安装Python beta版。
使用easy_install
安装肯定会导致此问题。如果是您的问题,只需停止使用easy_install
并开始使用pip
。
如果手动安装而不是使用pip
,则还必须手动进行版本检查。如果您有充分的理由这样做,请下载1.9.2并手动进行安装。
无论如何,无论您遇到什么情况,您都应该能够通过卸载pylint
然后运行来修复它:
py -m pip install pylint==1.9.2
1。根据其自己的文档,它特别支持3.4、3.5和3.6。尽管它说不支持3.7,但它可能也支持3.7 —更高版本肯定会支持,当然将来的版本将支持甚至更高版本的Python。但绝对不是2.7。