2016-05-15 3 views
0

Надеюсь, это должно быть просто. Python работает нормально, если я открываю PowerShell v3 вручную. Я могу проверить версию и запустить внешние скрипты и т. Д. Но как только я открою файл powershell.exe через subprocess.Popen из скрипта python из другого приложения, python просто не будет запускаться; «Термин« Python »не распознается как имя командлета, функции, файла сценария или операционной программы ... и т. Д.»python недоступен в powershell v3 при открытии с помощью Popen

Я проверил пути среды несколько раз, и python работает нормально в системе в целом ,

Кто-нибудь знает, что это может быть вызвано?

subprocess.Popen(["powershell.exe", '-ExecutionPolicy', 'RemoteSigned', "path to PS1_script_with python command"]) 

Мой файл PS1 выглядит следующим образом:

cd C:\Users\David\Geeknote\geeknote-master\geeknote 
python gnsync.py --path "C:\Users\David\Desktop\C4DtoEvernote", --mask "*.nfo", --notebook "Python Logs" 
function Pause{Read-Host 'You have successfully synced your C4D Annotations to Evernote using gnsync. 
Please press Enter to continue...' | Out-Null} 
Pause{} 

ответ

1

кажется (по любой причине) ваш $PATH не читается или честь процесса; и поэтому python не может быть найден.

Вы можете:

  1. Установите путь с $env:Path = "C:\Python27:C:\Python27\Scripts";

  2. Настройка по тропинке с помощью пользовательского профиля консоли (т.е. .ps1 файл) и передать его с -PSConsoleFile.

  3. Самый простой вариант, пройти полный путь к Python исполняемый в вашем командном файле C:\Python27\python.exe gsync.py ...

Я хотел бы попробовать # 3, а затем посмотреть, если вам нужны другие варианты.

При необходимости отрегулируйте пути, особенно если у вас установлено несколько интерпретаторов Python.

+0

спасибо да # 3 работает;) чувствую себя немного тусклым. Я не думал об этом, но я, очевидно, стучал головой о стену. Что касается №1, то синтаксис полностью корректен там или там должна быть точка с запятой? Я попробовал, но, похоже, удалил некоторые команды пути, которые у меня были там раньше. Это не решило проблему. # 2 Я не уверен, как реализовать. – dflamholc

Смежные вопросы