#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;
и я получаю эти ошибки:
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.