从Windows PowerShell启动Python

unftdfkk  于 2023-01-12  发布在  Python
关注(0)|答案(2)|浏览(171)

我知道这看起来像是一个被回答了成千上万次的问题,但是关于环境路径的传统答案都不起作用。
我想在Windows 7的Powershell中运行以下命令:

python mycode.py

但是,Powershell返回错误,指出python not recognized as an applet, function, application,...
下面是我的路径变量:
用户变量:

PATH 
C:\Python27\Lib\site-packages\PyQt4;
C:\Python27;
C:\Python27\DLLs;
C:\Python27\Scripts;
C:\Python27\Lib\site-packages\vtk;
C:\Python27\gnuplot\binary;
C:\Program Files (x86)\pythonxy\SciTE-3.3.2-3;
C:\Program Files (x86)\pythonxy\console;
C:\MinGW32-xy\bin;
C:\Program Files (x86)\pythonxy\swig;
C:\Program Files (x86)\pythonxy\gettext\bin

PATHEXT 
.PY;.PYW

PYTHON_INCLUDE 
C:\Python27\include

PYTHON_LIB 
C:\Python27\libs\python27.lib

和系统变量:

PATH
C:\Python27\Lib\site-packages\PyQt4;
C:\Python27;
C:\Python27\DLLs;
C:\Python27\Scripts;
C:\Python27\Lib\site-packages\vtk;
C:\Python27\gnuplot\binary;
C:\Program Files (x86)\pythonxy\SciTE-3.3.2-3;
C:\Program Files (x86)\pythonxy\console;
C:\MinGW32-xy\bin;
C:\Program Files (x86)\pythonxy\swig;
C:\Program Files (x86)\pythonxy\gettext\bin;
C:\WINDOWS\system32;
C:\WINDOWS

我尝试了以下方法:

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

没有成功。(当然,我试着启动一个新的Powershell会话,甚至试着重新启动我的PC)
可能是PowerShell没有正确读取路径变量,或者我没有一些权限吗?我很困惑,尤其是知道这在另一个Windows 7安装上工作正常。我注意到键入:

python.exe

...按预期打开Python终端。
编辑:好的,我尝试了下面的test.py代码:

# -*- coding: utf-8 -*-
print "Hello"
input()

python.exe test.py

打开一个新的终端,里面有“Hello”,等待我的输入,但我不希望这样,我希望正常的行为,在PowerShell中打印“Hello”,在PowerShell中显示错误消息等等。
Edit 2:我注意到PowerShell中的“Path”变量由以下代码给出:获取子项环境
不等于W7选项“系统-〉高级系统设置-〉环境变量”中的值。它仅为:

;C:\Python27

就像我之前的命令行[环境]::SetEnvironmentVariable(“路径”,“$env:路径; C:\Python27”)刚写进去了,修这个也没解决我的问题。

kyks70gy

kyks70gy1#

使用Powershell运行任何可执行文件(不仅仅是Python.exe)都可以使用多种方法,但对我来说最有效的方法是iex
我遵循的基本步骤是:

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

为了找到可执行文件,我通常使用get-command

if (get-command curl.exe) {
        $exePath = "curl.exe"
    }

    $Cmd = '"'+ $exePath + '"' + ' args'
    iex "& $curlCmd"

希望这个有用。

kd3sttzy

kd3sttzy2#

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

相关问题