2014-10-02 43 views
2

我的全局python實例(/usr/bin/python,而不是virtualenv)中的我的pyflakes部分flake8未運行。在全局Python實例中不使用pyflakes的Flake8

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按預期工作。

回答

2

我和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進行安裝解決了我的問題。

+0

我面臨同樣的問題,但我不太清楚「更新setuptools」是什麼意思,你能更具體一點嗎? – 2015-03-05 07:39:41

+1

@RobertoAguilar,這取決於。這個bug在更新版本的'anaconda'中得到修復。如果您使用'anaconda',則只需鍵入'conda update flake8'。如果你使用的是香草python,你可以使用'pip install --upgrade setuptools',然後'pip install --upgrade flake8' – cel 2015-03-05 07:44:31

+1

我已經嘗試了pip命令,現在flake8成功調用pyflakes,非常感謝你 – 2015-03-05 08:05:31