Start Python from Windows PowerShell



我知道这看起来像是一个回答了数千次的问题,但关于环境PATH的传统答案都不起作用。

我想在Windows7的Powershell中运行以下程序:

python mycode.py

但是,Powershell返回一个错误,指出python not recognized as an applet, function, application,...

这些是我的路径变量:

用户变量:

PATH 
C:Python27Libsite-packagesPyQt4;
C:Python27;
C:Python27DLLs;
C:Python27Scripts;
C:Python27Libsite-packagesvtk;
C:Python27gnuplotbinary;
C:Program Files (x86)pythonxySciTE-3.3.2-3;
C:Program Files (x86)pythonxyconsole;
C:MinGW32-xybin;
C:Program Files (x86)pythonxyswig;
C:Program Files (x86)pythonxygettextbin
PATHEXT 
.PY;.PYW
PYTHON_INCLUDE 
C:Python27include
PYTHON_LIB 
C:Python27libspython27.lib

和系统变量:

PATH
C:Python27Libsite-packagesPyQt4;
C:Python27;
C:Python27DLLs;
C:Python27Scripts;
C:Python27Libsite-packagesvtk;
C:Python27gnuplotbinary;
C:Program Files (x86)pythonxySciTE-3.3.2-3;
C:Program Files (x86)pythonxyconsole;
C:MinGW32-xybin;
C:Program Files (x86)pythonxyswig;
C:Program Files (x86)pythonxygettextbin;
C:WINDOWSsystem32;
C:WINDOWS

我尝试了以下方法:

$env:Path = $env:Path + ";C:Python27"
[Environment]::SetEnvironmentVariable("Path", "$env:Path;C:Python27", "User")

没有成功。(当然,我试着启动一个新的Powershell会话,甚至试着重新启动我的电脑)

可能是PowerShell没有正确读取路径变量,或者我没有一些权限?我很失落,尤其是知道这在另一个Windows7安装上可以正常工作。我注意到打字:

python.exe

按预期打开Python终端。

编辑:好的,我尝试了以下测试.py代码:

# -*- coding: utf-8 -*-
print "Hello"
input()
python.exe test.py

打开一个带有"Hello"的新终端,等待我的输入但我不希望这样,我希望正常的行为,在PowerShell中打印"Hello",在PowerShell上打印错误消息等等。

第2版:我注意到PowerShell中的"Path"变量由:获取ChildItem环境

不等于W7选项"系统->高级系统设置->环境变量"中的值。只是:

;C:Python27

就像我以前的命令行[Environment]::SetEnvironmentVariable("Path","$env:Path;C:\Python27")只是写在上面。解决这个问题也没有解决我的问题。

使用Powershell(不仅仅是Python.exe)运行任何可执行文件都可以使用多种方法,但对我来说效果最好的是iex

我遵循的基本步骤是:

  • 查找可执行文件的路径
  • 构造命令字符串
  • 在其上运行iex。使用&计算文件路径中的空间

为了找到可执行文件,我通常使用get-command。此搜索路径:

    if (get-command curl.exe) {
        $exePath = "curl.exe"
    }
    $Cmd = '"'+ $exePath + '"' + ' args'
    iex "& $curlCmd"

希望这能有所帮助。

在"系统->高级系统设置->环境变量"中添加"C:\Python27"到系统变量中解决了我的问题。对我来说,它只存在于用户变量中。

最新更新