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 работает как положено.


person KFunk    schedule 02.10.2014    source источник


Ответы (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.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 решает проблему для меня.

person cel    schedule 02.11.2014
comment
я столкнулся с той же проблемой, но я не совсем уверен, что вы подразумеваете под Update setuptools, не могли бы вы быть немного более конкретным? - person Roberto Aguilar; 05.03.2015
comment
@RobertoAguilar, это зависит. Эта ошибка исправлена ​​в новых версиях anaconda. Если вы используете anaconda, вы можете просто ввести conda update flake8. Если вы используете ванильный питон, вы должны использовать pip install --upgrade setuptools, затем pip install --upgrade flake8 - person cel; 05.03.2015
comment
Я попробовал команды pip, и теперь flake8 успешно вызывает pyflakes, большое спасибо - person Roberto Aguilar; 05.03.2015