0

希望这应该很简单。如果我手动打开 PowerShell v3,Python 环境运行良好。我可以检查版本并运行外部脚本等。但是只要我通过 subprocess.Popen 从另一个应用程序的 python 脚本打开 powershell.exe,python 就不会运行;“‘Python’一词未被识别为 cmdlet、函数、脚本文件或可运行程序的名称……等”

我已经反复检查了我的环境路径,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 回答