Windows怎么用PowerShell执行python脚本
详细讲解在Windows操作系统中使用PowerShell终端执行Python脚本的完整步骤。包含环境检测、目录定位、参数传递、虚拟环境运行机制以及常见报错的系统排查方案。
data_process.py 的脚本,保存在某个项目文件夹中,现在需要打开 Windows PowerShell 将其执行起来并观察输出。核心做法其实非常直接:启动 PowerShell 窗口,使用 cd 命令切换到该脚本所在的文件夹目录,然后直接输入 python data_process.py 并回车即可。如果脚本需要接收参数,只需在文件名后以空格追加。本文将按照标准操作顺序,逐一讲解环境检查、路径定位、传参调度、虚拟环境运行以及常见报错的具体排错方法。
一、前期准备:在 PowerShell 中验证 Python 环境
在执行任何脚本之前,首先需要确认当前 Windows 系统的 PowerShell 能够准确识别并调用 Python 解释器。如果系统尚未安装 Python,或者安装时遗漏了环境变量配置,直接输入命令会导致执行失败或弹出意外窗口。
1. 打开 Windows PowerShell 窗口
在 Windows 操作系统中,推荐使用以下快捷方式打开控制台:
- 快捷键方式:按下键盘上的
Win + R快捷键,在弹出的“运行”对话框中输入powershell并回车。 - 系统菜单方式:右键点击任务栏左下角的 Windows 开始图标(或按
Win + X),在弹出菜单中选择“终端”或“Windows PowerShell”。 - 目录直达方式:在 Windows 文件资源管理器中打开脚本所在的文件夹,点击顶部地址栏,直接输入
powershell并回车,终端打开时会自动定位到当前文件夹。
2. 检查 Python 解释器是否就绪
在打开的 PowerShell 窗口中,键入版本查询命令:
python --version
如果看到如上所示的版本号输出,说明 Python 已正确安装,并且安装目录已注册在系统的 PATH 环境变量中,可以直接进入下一步。若终端输出了 py -0 或没有任何报错,也可以使用 Windows 专用的 Python 启动器 py 命令。
python 后,系统没有返回版本号,而是自动启动并打开了微软应用商店(Microsoft Store),或者提示“无法将‘python’项识别为 cmdlet...”,这属于 Windows 的常见路径冲突问题,请参考本文第四节提供的排查方案。
二、关键步骤:在 PowerShell 中执行脚本的常用方式
在日常开发与运维任务中,根据脚本所处的位置以及执行场景的不同,主要有以下三种调用方式。
方式一:切换工作目录后执行(最推荐的日常开发方式)
当 Python 脚本需要读取当前目录下的附属文件(如配置文件、CSV 数据集、图片)时,将 PowerShell 的当前工作目录切换至脚本所在路径是稳妥的做法。这样能保证脚本内部使用的相对路径能够准确解析。
操作步骤如下:
- 查看当前所处目录:使用
Get-Location命令(或简写pwd)。 - 切换至目标文件夹:使用
Set-Location命令(或简写cd)。 - 运行脚本文件:使用
python 文件名.py。
# 1. 切换工作目录至脚本所在的文件夹(假设项目位于 D 盘)
cd "D:\Projects\DataTask"
# 2. 列出目录内容,确认脚本文件存在
Get-ChildItem -Filter *.py
# 3. 调用 Python 解释器运行脚本
python data_process.py
[2026-11-10 18:30:03] 数据清洗完成,共处理 1,200 条记录。
任务成功结束,耗时 1.15 秒。
方式二:使用绝对路径直接执行
如果你编写了定时自动化任务,或者不想频繁切换当前的控制台目录,可以直接在 python 命令后紧跟脚本的完整绝对路径:
python "D:\Projects\DataTask\data_process.py"
D:\My Projects\Task 1pp.py),路径两端必须使用半角双引号包裹。否则 PowerShell 会在遇到空格时将其截断拆分成多个独立参数,导致抛出“找不到文件”的异常。
方式三:使用 Windows Python 启动器(py.exe)执行与指定版本
Windows 平台的官方安装包默认会部署一个轻量级启动器 py.exe,它位于 C:\Windows 目录下。当你的系统中并存多个不同版本的 Python 时,可以通过启动器精准调用特定版本:
# 列出当前系统已安装的所有 Python 版本
py --list
# 强制使用指定的 Python 3.10 执行脚本
py -3.10 data_process.py
# 强制使用指定的 Python 3.12 执行脚本
py -3.12 data_process.py
三、进阶操作:参数传递、输出重定向与虚拟环境运行
在实际生产与自动化批处理场景中,通常不仅需要运行脚本,还需要向脚本传入配置参数、捕获运行日志,或在隔离的虚拟环境中执行。
1. 向 Python 脚本传递命令行参数
在 PowerShell 中向 Python 脚本传参非常简明,只需在脚本名称后面,依次以空格分隔写入参数即可:
python data_process.py --input raw_data.csv --batch 100 --verbose
在 Python 脚本端,可以通过内置的 sys.argv 列表或 argparse 模块解析这些参数。例如 sys.argv[0] 为脚本文件名,后续项依次为传入的各个标志与数值。
2. 标准输出重定向与日志保存
PowerShell 提供了灵活的管道符操作,可以将脚本打印到控制台的信息直接输出到文本文件,方便日后查验:
# 将标准输出覆盖保存到 log.txt 文件
python data_process.py > execution.log
# 将标准输出追加到 log.txt 文件末尾
python data_process.py >> execution.log
# 既在控制台屏幕实时显示,又同步记录到本地文件(使用 Tee-Object)
python data_process.py | Tee-Object -FilePath "D:\Projects\DataTask
un.log"
3. 在虚拟环境(Virtual Environment)中运行脚本
为了避免不同项目的第三方依赖库相互污染,通常会为项目创建独立的虚拟环境。在 PowerShell 中使用虚拟环境的完整流程如下:
# 1. 切换至项目所在文件夹
cd "D:\Projects\DataTask"
# 2. 创建名为 .venv 的独立虚拟环境
python -m venv .venv
# 3. 运行激活脚本
.\.venv\Scripts\Activate.ps1
激活成功后,PowerShell 命令行最左侧会出现形如 (.venv) 的标识。此时输入的 python 命令会自动锁定该虚拟环境内部的解释器与第三方扩展库。
Activate.ps1 时,PowerShell 经常会报错:在此系统上禁止运行脚本。这是因为 Windows 默认的执行策略(Execution Policy)被设为 Restricted。
推荐解决方法:在当前 PowerShell 窗口中运行如下命令,将执行策略临时放宽为允许本地脚本运行:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
注意使用
-Scope Process 参数,这只会对当前这一个 PowerShell 窗口生效,关闭窗口后自动恢复,既解决了执行问题,又保障了系统安全。
四、常见问题排查与解决步骤
当执行 python 命令未能得到预期输出时,通常集中在以下三个典型故障点。
问题一:输入 python 后系统自动弹出微软应用商店
原因分析:Windows 10 和 Windows 11 在系统路径中预置了几个“应用执行别名”(App Execution Aliases)。当系统环境变量中尚未配置真正的 Python 路径时,系统会优先命中微软的应用商店占位符,从而自动唤起商城安装界面。
解决步骤:
- 点击 Windows 开始菜单,打开“设置”(快捷键
Win + I)。 - 进入“应用” → “高级应用设置” → “应用执行别名”(或在设置搜索框中直接搜索“应用执行别名”)。
- 在列表中找到“应用安装程序 (python.exe)”和“应用安装程序 (python3.exe)”,将右侧的开关全部切换为“关”。
- 重新打开一个新的 PowerShell 窗口进行测试。
问题二:提示“无法将‘python’项识别为 cmdlet、函数、脚本文件或可运行程序的名称”
原因分析:这说明 PowerShell 遍历了系统环境变量 $env:Path 中记录的所有目录,均未能找到 python.exe 可执行文件。这通常是因为在安装 Python 时,未勾选“Add Python to PATH”选项。
解决步骤:
- 找到 Python 的实际安装路径,通常位于当前用户的 AppData 目录,例如:
C:\Users\你的用户名\AppData\Local\Programs\Python\Python311。 - 按
Win + R输入sysdm.cpl打开系统属性,进入“高级”选项卡,点击“环境变量”。 - 在“用户变量”或“系统变量”中找到名为
Path的条目,双击编辑,点击“新建”,将 Python 的主目录及其下的Scripts目录依次加入列表中。 - 配置完成后,必须关闭现有的 PowerShell 窗口并重新打开,以便重新加载最新的环境变量。
问题三:终端打印中文出现乱码(如显示为问号或异常字符)
原因分析:Windows 控制台默认的代码页编码为 GBK(代码页 936),而现代 Python 脚本文件与字符串处理默认使用 UTF-8 编码,字符集不匹配会导致控制台解码错误。
解决方案:在运行 Python 脚本之前,在 PowerShell 中执行以下命令,强制将控制台的输入输出编码统一为 UTF-8:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
五、总结:核心命令与操作场景速查
为了便于日常快速查阅,下表汇总了在 Windows PowerShell 中调用与管理 Python 脚本的典型操作与语法规范:
| 应用场景 | PowerShell 执行命令 | 操作要点与说明 |
|---|---|---|
| 环境与版本检测 | python --version 或 py -0 |
验证 PATH 变量是否正常,检查多版本分布 |
| 当前目录直接运行 | cd "D:\Path" ; python main.py |
推荐常规开发使用,相对路径文件寻址准确 |
| 跨目录绝对路径运行 | python "D:\My Code\main.py" |
路径含空格必须使用英文半角双引号包裹 |
| 命令行参数传递 | python main.py --env prod --id 12 |
参数间以空格分隔,脚本通过 sys.argv 接收 |
| 输出同时保存与显示 | python main.py | Tee-Object log.txt |
实时监控日志并持久化保存至文本文件 |
| 解除虚拟环境脚本限制 | Set-ExecutionPolicy -Scope Process RemoteSigned |
仅影响当前终端窗口,关闭后自动恢复安全策略 |
| 多版本指定调用 | py -3.11 main.py |
利用 Windows 启动器跨版本精确执行 |
掌握在 PowerShell 中执行 Python 脚本的关键,在于理清目录定位、环境变量解析、路径空格引号包裹以及执行策略机制。遵循标准的工作目录切换流程,遇到异常时通过环境变量与别名排查,即可在 Windows 环境下顺畅稳定地运行并调度各类 Python 脚本任务。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









