Запуск скриптов Python с подпроцессом в Windows. Оболочки проверки кода Python из emacswiki выдают ту же ошибку

Поэтому я пытаюсь настроить средства проверки кода Python, предложенные в вики emacs. Однако я не могу запустить эти скрипты в моей командной оболочке, не говоря уже о emacs. Раздел находится здесь: http://www.emacswiki.org/emacs/PythonProgrammingInEmacs И я попробовал скрипт, расположенный здесь и здесь

В обоих случаях я изменил первую строку из #! Usr/bin python на полный путь к моему исполняемому файлу python и когда я запускаю сценарии через

python pylint_etc_wrappers.py someModule.py 

или же

python pycheckers.py soemModule.py

оба сводятся к одной и той же ошибке, скорее всего потому, что они пытаются открыть подпроцесс. Вот след:

Traceback (most recent call last):
  File "pycheckers.py", line 254, in <module>
    runner.run(source_file)
  File "pycheckers.py", line 91, in run
    process = Popen(args, stdout=PIPE, stderr=PIPE)
  File "C:\devel\Python\Python-2.7\Lib\subprocess.py", line 672, in __init__
    errread, errwrite)
  File "C:\devel\Python\Python-2.7\Lib\subprocess.py", line 882, in _execute_child
    startupinfo)
WindowsError: [Error 2] The system cannot find the file specified

Второй скрипт предлагает изменить первую строку на путь интерпретатора (что я и сделал) и изменить путь в основной функции, которая выглядит примерно так:

os.environ['PATH'] = \
      path.dirname(sys.executable) + ':' + os.environ['PATH']

что было немного неясно для меня. Есть идеи?

1 ответ

Решение

У меня есть pylint 0.25.1, установленный с помощью easy_install (Python 2.7, Win XP). Оба файла pylint и pylint.bat были установлены в Python27/Scripts (этот каталог находится в моем PATH).

Я также получаю ошибку "Система не может найти указанный файл" при запуске сценария pylint_etc_wrapper.py без изменений.

Запуск Pylint из сценария работает, если

command = 'pylint'

изменено на

command = 'pylint.bat'

Еще один способ заставить это работать, это добавить shell=True к Popen() вызов.

Я не могу объяснить все это, но есть неразрешенная ошибка Python, которая выглядит так, как будто она может иметь значение: http://bugs.python.org/issue8557.

Другие вопросы по тегам