运行pylint时语法无效

时间:2018-07-23 02:22:02

标签: python

以下是堆栈跟踪,请提出建议 我的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
  1. 我的python版本是2.7

1 个答案:

答案 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 pylintpy -m pip install pylint安装它,则应该自动安装1.9.2而不是2.0.0,否则,将自动安装应该失败而不是看起来成功。 (当我自己测试时,就是这样。)

但是,使用旧版本的pip进行安装可能会导致此问题。如果是这样,请升级您的pipsetuptools。 (您肯定至少需要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。