我的全局python实例(/usr/bin/python
,不是virtualenv)未运行flake8的pyflakes部分。
flake8 --version
2.2.3 (pep8: 1.5.7, mccabe: 0.2.1) CPython 2.7.5 on Darwin
pyflakes似乎并没有连接到flake8。
pip freeze
确认已安装pyflakes==0.8.1
。我安装在我的全局站点程序包($ sudo pip install flake8
)上。但是,在virtualenv内部运行时,pyflakes在列表中,而flake8可以正常工作。
最佳答案
我对conda的flake8也有类似的问题。以下是一些调试说明:
flake8在其setup.py
文件中注册pyflakes检查器:
setup(
...
entry_points={
'distutils.commands': ['flake8 = flake8.main:Flake8Command'],
'console_scripts': ['flake8 = flake8.main:main'],
'flake8.extension': [
'F = flake8._pyflakes:FlakesChecker',
],
},
...
检查文件时,flake8加载'flake8.extension'的注册入口点,并注册找到的检查器:
...
for entry in iter_entry_points('flake8.extension'):
checker = entry.load()
pep8.register_check(checker, codes=[entry.name])
...
conda的flake8似乎在编写这些入口点时遇到问题。
from pkg_resources import iter_entry_points
list(iter_entry_points('flake8.extension'))
为我返回一个空列表,这就是为什么pyflakes不会被注册并因此无法运行的原因,即使它已经安装并可以导入。
更新setuptools并通过
pip install flake8
安装为我解决了该问题。关于python - Flake8在全局python实例中不使用pyflakes,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26153267/