如何查找本机PowerShell 7安装路径并解决Python调用相关异常
解决方案
步骤1:定位PowerShell 7 安装路径
- 若能从开始菜单找到PowerShell 7入口,直接打开后执行命令
$PSHome,输出的路径就是PowerShell 7的安装根目录。 - 若开始菜单找不到,可直接排查两个默认安装路径:
- 全局安装(64位系统):
C:\Program Files\PowerShell\7\pwsh.exe - 单用户安装:
C:\Users\当前系统用户名\AppData\Local\Programs\PowerShell\7\pwsh.exe
- 全局安装(64位系统):
- 找到
pwsh.exe所在的文件夹路径后,将该路径添加到系统环境变量Path中,重启终端后即可全局识别pwsh命令。
步骤2:修复pwsh无法识别内置cmdlet的问题
- 该报错不是PowerShell 7缺少对应cmdlet,而是调用
pwsh时的参数格式错误。在Python中通过os.system调用pwsh执行命令时,必须添加-Command参数声明后续内容为要执行的PowerShell指令:- 错误写法:
os.system('pwsh get-host') - 正确写法:
os.system('pwsh -Command "get-host"')
- 错误写法:
- 多命令执行示例:
import os # 单引号内的所有PowerShell命令放在-Command后的双引号中,用分号分隔 cmd = r'pwsh -Command "Copy-Item C:\test\1.txt C:\test\2.txt; Get-Host"' os.system(cmd)
- 不想配置环境变量可直接使用
pwsh.exe的绝对路径调用:
import os cmd = r'"C:\Program Files\PowerShell\7\pwsh.exe" -Command "Get-Host"' os.system(cmd)
验证方式
在系统cmd窗口执行pwsh -Command "$PSVersionTable.PSVersion",输出主版本号为7即代表配置成功。
内容的提问来源于stack exchange,提问作者Jamalan
相关产品推荐
相关产品推荐

