2014-10-02 2 views
2

내 글로벌 파이썬 인스턴스 (/usr/bin/python, virtualenv가 아님)에서 flake8의 pyflakes 부분이 실행되지 않습니다.Flake8은 글로벌 파이썬 인스턴스에서 pyflakes를 사용하지 않습니다

flake8 --version 
2.2.3 (pep8: 1.5.7, mccabe: 0.2.1) CPython 2.7.5 on Darwin 

pyflakes가 flake8에 연결되는 것처럼 보이지 않습니다. pip freezepyflakes==0.8.1이 설치되어 있음을 확인합니다. 내 글로벌 사이트 패키지 ($ sudo pip install flake8)에 설치했습니다.

그러나 virtualenv 내부에서 실행하면 pyflakes가 목록에 있고 flake8이 예상대로 작동합니다.

답변

2

나는 conda의 flake8과 비슷한 문제가 있습니다 .8. 여기에 몇 가지 디버깅 사항은 다음과 같습니다

setup.py 파일에 pyflakes 검사기를 등록 flake8

는 :

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

파일을 확인, 'flake8.extension'에 대한 등록 된 진입 점을 flake8로드 및 레지스터 체커를 발견

... 
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

나는 똑같은 문제에 직면하고있다.하지만 "update setuptools"가 무엇을 의미하는지에 대해 확신하지 못한다. –

+1

@RobertoAguilar, 그게 달려 있습니다. 이 버그는 최신 버전의 '아나콘다'에서 수정되었습니다. '아나콘다 (anaconda) '를 사용한다면'conda update flake8' 만 입력하면됩니다. 바닐라 파이썬을 사용한다면'pip install --upgrade setuptools','pip install --upgrade flake8' – cel

+1

나는 pip 명령을 시도했고 flake8은 pyflakes를 성공적으로 호출합니다. 고맙습니다. –

관련 문제