我的pyke8的pyflakes部分没有为我的全局python实例运行(/usr/bin/python
,而不是virtualenv)。
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按预期工作。
答案 0 :(得分:2)
我和conda的flake8有类似的问题。以下是一些调试说明:
flake8在其setup.py
文件中注册pyflakes checker:
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
进行安装,解决了我的问题。