Flake8 не использует pyflakes в глобальном экземпляре python


Моя часть pyflakes flake8 не работает для моего глобального экземпляра 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 работает, как и ожидалось.

1 2

1 ответ:

У меня была похожая проблема с flake8 стадион conda по. Вот некоторые замечания по отладке:

Flake8 регистрирует проверку pyflakes в своем файле setup.py:

setup(
...
    entry_points={
        'distutils.commands': ['flake8 = flake8.main:Flake8Command'],
        'console_scripts': ['flake8 = flake8.main:main'],
        'flake8.extension': [
            'F = flake8._pyflakes:FlakesChecker',
        ],
    },
...

При проверке файла flake8 загружает зарегистрированные точки входа для ' flake8.расширение ' и регистры найденных шашек:

...
for entry in iter_entry_points('flake8.extension'):
    checker = entry.load()
    pep8.register_check(checker, codes=[entry.name])
...

У flake8 Конды, похоже, есть проблемы с написанием этих точек входа.

from pkg_resources import iter_entry_points
list(iter_entry_points('flake8.extension'))

Возвращает пустой список для меня, поэтому pyflakes не будет зарегистрирован и, следовательно, не работает, даже если он устанавливается и импортируется.

Обновление setuptools и установка через pip install flake8 исправляет эту проблему для меня.