вызов исполняемого файла из Python Win32 IDLE работает, но то же самое из сеанса Python консоли Windows не

#python #console #subprocess #runtime-error #executable

#python #консоль #подпроцесс #ошибка во время выполнения #исполняемый

Вопрос:

Я пытаюсь запустить исполняемый файл из Python, используя os.system или подпроцесс, на моем компьютере с Windows, но у меня странная проблема.

Вызов os.system / subprocess отлично работает с: 32-разрядной консолью Python из IDLE,

но, но это не работает из: 1) cmd, если я запускаю любой сеанс Python (32 или 64) 2) Если я использую любую версию Python из Spyder. 3) PyCharm с любой версией Python;

и я получаю эти ошибки:

1. Ошибка во время выполнения

2. Окно ошибки, которое появляется сразу после того, как я нажимаю OK на первом

Я потратил много часов на это, но я не могу понять, почему это происходит. Почему subprocess или os.system не будут работать одинаково с разных консолей Python?

Зависимости этого приложения следующие: GDAL 201 (MSVC 2013) для 32-разрядных ПК с Windows, GDAL 201 (MSVC 2013 Win 64) для 64-разрядных ПК с Windows, GDAL 2.1.0 для Python 2.7, Microsoft MPI v7.1, распространяемый пакет Microsoft Visual C 2015 (x86), распространяемый пакет Microsoft Visual C 2015 (x64)

sys.path — Python2.7 (Win32) IDLE

[«, ‘C:ProgramDataMicrosoftWindowsStart MenuProgramsArcGIS Python 2.7’, ‘C:Python27ArcGIS10.2Libidlelib ‘, ‘C:UserssvimalDesktopPython ‘, ‘C:WINDOWSsystem32python27.zip ‘, ‘C:Python27ArcGIS10.2DLLs ‘, ‘C:Python27ArcGIS10.2lib ‘, ‘C:Python27ArcGIS10.2libplat-win ‘, ‘C:Python27ArcGIS10.2liblib-tk ‘, ‘C:Python27ArcGIS10.2 ‘, ‘C:Python27ArcGIS10.2libsite-packages ‘, ‘C:Program Files (x86)ArcGIS Desktop10.2bin’, ‘C:Program Files (x86)ArcGIS Desktop10.2 arcpy’, ‘C:Program Files (x86)ArcGIS Desktop10.2 ArcToolbox Scripts’]

sys.path Консоль Python из Windows CMD

[«, ‘C:UserssvimalDesktopPython ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64python27.zip ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64DLLs ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64lib ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libplat-win ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64liblib-tk ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64 ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packages ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packagesFontTools ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packageswin32 ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packageswin32lib ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packagesPythonwin ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packagessetuptools-27.2.0-py2.7.egg ‘]

sys.path — PyCharm

[‘C:Program Files (x86)JetBrains PyCharm Community Edition 2016.2.3helpers pydev’, ‘C:UserssvimalDesktopPython ‘, ‘C:Program Files (x86)JetBrains PyCharm Community Edition 2016.2.3helpers pydev’, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64python27.zip ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64DLLs ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64lib ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libplat-win ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64liblib-tk ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64 ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packages ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packagesFontTools ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packageswin32 ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packageswin32lib ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packagesPythonwin ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packagessetuptools-27.2.0-py2.7.egg ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packagesIPythonextensions’, ‘C:UserssvimalDesktopWorkEU_Floods ‘]

sys.path — Spyder

[«, ‘C:UserssvimalDesktopPython ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64python27.zip ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64DLLs ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64lib ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libplat-win ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64liblib-tk ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64 ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packages ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packagesFontTools ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packageswin32 ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packageswin32lib ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packagesPythonwin ‘, ‘C:WinPython-64bit-2.7.9.5python-2.7.9.amd64libsite-packagessetuptools-27.2.0-py2.7.egg ‘]

Комментарии:

1. проверьте sys.path внутри самого процесса. и вообще, вам нужно исследовать разницу между PyCharm и IDLE. Может помочь добавление shell=True подпроцесса is.

2. И, пожалуйста, включите WHAT YOU TRIED OUT в свой пост.

3. Я добавил sys.path из разных консолей Python, упомянутых в сообщении. Точная команда, которую я использую, — os.system («pathexecutable.exe «)

4. Попробуйте subprocess.call('path/to/app.exe', shell=True)

5. Я пробовал это, не помогает!

Ответ №1:

возможно, вы можете повторить попытку после использования «script make_winpython_fix.bat», но в winpython-2.7.9.5 такой опции не было (это вышло 8 октября 2015 года)

https://github.com/stonebig/winpython/commit/1080831930a1dedaf6a0c3019e7150b46a138357

Комментарии:

1. Как мне использовать winpython_fix.bat? Я переустановил последнюю версию winpython, и теперь сеанс python командной строки, похоже, работает так, как ожидалось. Но Spyder по-прежнему выдает ошибку времени выполнения. Мне еще предстоит проверить PyCharm.

2. вы дважды щелкаете по скрипту «make_winpython_fix.bat»

3. Сделал это. Не устраняет проблему. Однако я скопировал файл make_winpython_fix.bat из папки scripts новой версии WinpPython (WinPython-64bit-2.7.12) в ту же папку установленной версии (2.7.9) на моем компьютере. Я мог бы попробовать установить новую версию и снова запустить make_winpython_fix.bat.