0

うまくいけば、これは簡単なはずです。PowerShell v3 を手動で開くと、Python 環境は正常に動作します。バージョンを確認したり、外部スクリプトなどを実行したりできます。しかし、別のアプリケーションの python スクリプトから subprocess.Popen を介して powershell.exe を開くとすぐに、python は実行されません。「「Python」という用語は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません...など」

環境パスを繰り返しチェックしましたが、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{}
4

1 に答える 1

1

(何らかの理由で) あなた$PATHはプロセスによって読まれていないか、尊重されていないようです。したがって、python見つけることができません。

次のいずれかを実行できます。

  1. でパスを設定します$env:Path = "C:\Python27:C:\Python27\Scripts";

  2. カスタム コンソール プロファイル (つまり、.ps1ファイル) を使用してパスを設定し、それを で渡します-PSConsoleFile

  3. 最も簡単なオプションは、コマンド ファイルで Python 実行可能ファイルへのフル パスを渡すことです。C:\Python27\python.exe gsync.py ...

#3を試してから、他のオプションが必要かどうかを確認します.

特に複数の Python インタープリターがインストールされている場合は、必要に応じてパスを調整してください。

于 2016-05-15T11:07:06.760 に答える