2016-05-15 49 views
0

希望这应该很简单。如果我手动打开PowerShell v3,Python环境运行正常。我可以检查版本并运行外部脚本等。但是,只要通过subprocess.Popen从另一个应用程序的python脚本打开powershell.exe,python就不会运行; “术语”Python“不被识别为cmdlet,函数,脚本文件或可操作程序等的名称......”python在用Popen打开时无法在powershell v3中访问

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