python 使用 Popen 打开时在 powershell v3 中无法访问

python not accessible in powershell v3 when opened with Popen

希望这应该很简单。 Python 如果我手动打开 PowerShell v3,环境会 运行 正常。我可以检查版本和 运行 外部脚本等。但是一旦我从另一个应用程序的 python 脚本打开 powershell.exe 到 subprocess.Popen,python 就赢了't 运行; "The term 'Python' is not recognised as the name of a cmdlet, function, script file or operable program... etc"

我反复检查了我的环境路径,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{}

似乎(无论出于何种原因)您的 $PATH 没有被进程读取或接受;因此找不到 python

您可以:

  1. 设置路径为$env:Path = "C:\Python27:C:\Python27\Scripts";

  2. 使用自定义控制台配置文件(即 .ps1 文件)设置路径并使用 -PSConsoleFile.

  3. 传递它
  4. 最简单的选项,将完整路径传递到命令文件中的 Python 可执行文件 C:\Python27\python.exe gsync.py ...

我会尝试#3,然后看看您是否需要其他选项。

适当调整路径 - 特别是如果您安装了多个 Python 解释器。