Как я могу заставить pyflakes работать на Windows?


Возникли проблемы с запуском pyflakes в windows.

На Windows нет apt install, так что... что же делать?

3 4

3 ответа:

Возможно, этот вопрос немного устарел, потому что запуск "pip install pyflakes" работал безупречно на Windows для меня...

Получить базовый пакет windows из превосходного репозитория пакетов windows Кристофа Гольке . Он включает в себя хлопья.

Я скачал файл pyflakes tgz (v0. 5. 0) из Pypi и смог распаковать его с помощью инструмента tar.

Теперь у меня был каталог, который выглядел так:

C:\temp>dir pyflakes-0.5.0
 Volume in drive C has no label.
 Volume Serial Number is A421-40B4

 Directory of C:\temp\pyflakes-0.5.0

07/11/2012  06:28 PM    <DIR>          .
07/11/2012  06:28 PM    <DIR>          ..
09/03/2011  10:09 AM    <DIR>          bin
07/11/2012  06:28 PM    <DIR>          build
09/03/2011  09:02 AM             1,057 LICENSE
09/03/2011  09:02 AM             1,696 NEWS.txt
09/03/2011  10:09 AM               763 PKG-INFO
09/03/2011  10:09 AM    <DIR>          pyflakes
09/03/2011  09:30 AM             1,075 setup.py
               4 File(s)          4,591 bytes
               5 Dir(s)  74,326,130,688 bytes free

Затем я попытался сделать очевидное: запустить файл setup.py. Он сказал мне использовать install, так что

\python27\python.exe setup.py install 

Это дало мне счастливое сообщение о создании и установке модуля, кульминацией которого стало

 Writing C:\Python27\Lib\site-packages\pyflakes-0.5.0-py2.7.egg-info

Хорошо, сейчас ...

(обеденный перерыв)

Теперь установка pyflakes ставит файл под названием "pyflakes" в c:\Python27\Scripts.

Чтобы запустить проверку pyflakes, используйте следующее:

\Python27\python.exe \Python27\Scripts\pyflakes myfile.py

Вот оно! Это работает.


Но есть еще кое-что в этой истории. Содержимое файла c:\Python27\Scripts\pyflakes является исходным кодом python. Теперь вы можете подумать: что происходит с модулем python с расширением no .py? другие файлы в этом каталоге правильно помечены расширением. py. Просто кажется неправильным оставить расширение. Зачем им это делать? Если вы проявите творческий подход и переименуете этот файл под названием "pyflakes" в "pyflakes.py", а затем попробуйте запустить это, вы получите эту ошибку:
C:\dev\python>\Python27\python.exe \Python27\Scripts\pyflakes.py import1.py
Traceback (most recent call last):
  File "\Python27\Scripts\pyflakes.py", line 3, in <module>
    from pyflakes.scripts.pyflakes import main
  File "C:\Python27\Scripts\pyflakes.py", line 3, in <module>
    from pyflakes.scripts.pyflakes import main
ImportError: No module named scripts.pyflakes

Проблема заключается в столкновении имен между (переименованными) pyflakes.py файл и импортируемый им модуль, расположенный по адресу c:\Python27\Lib\site-packages\pyflakes. Так что не переименовывайте его таким образом. Если вы настаиваете на том, чтобы иметь расширение .py, то выберите что - то другое, чем pyflakes.py для названия-например, pyflakes_driver.py работает просто отлично. Некоторые люди используют runpyflakes.py .

Если вы столкнетесь с проблемой, описанной выше,вам также нужно удалить хлопья.pyc, который, возможно, был создан в c:\Python27\Scripts справочник.


Люди также могут захотеть создать a .летучая мышь или .файл cmd для запуска pyflakes. Чтобы помочь в этом я создал c:\Python27\pyflakes.cmd, с таким содержанием:

@echo off
SETLOCAL
if  _%1==_ goto USAGE
%~dp0\python.exe %~dp0\Scripts\pyflakes %*
goto ALL_DONE

:USAGE
  echo usage:  pyflakes ^<file^> [^<optionalargs^>]
  echo run the pyflakes syntax checker on a python source file.

:ALL_DONE
ENDLOCAL

Ладно, все.