Windows怎么用PowerShell执行python脚本

陆景行
陆景行
发布时间:2026-11-13 | 4人浏览过
原创

详细讲解在Windows操作系统中使用PowerShell终端执行Python脚本的完整步骤。包含环境检测、目录定位、参数传递、虚拟环境运行机制以及常见报错的系统排查方案。

Windows 10 / 11 Windows PowerShell / PowerShell 7 Python 3.x 发布时间:2026年11月
Windows怎么用PowerShell执行python脚本
图 1:Windows PowerShell 运行 Python 脚本架构概览
假设你在 Windows 电脑上刚刚编写好了一个名为 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 窗口中,键入版本查询命令:

PowerShell 命令bash/ps
python --version
示例输出
Python 3.11.8

如果看到如上所示的版本号输出,说明 Python 已正确安装,并且安装目录已注册在系统的 PATH 环境变量中,可以直接进入下一步。若终端输出了 py -0 或没有任何报错,也可以使用 Windows 专用的 Python 启动器 py 命令。

注意事项:如果键入 python 后,系统没有返回版本号,而是自动启动并打开了微软应用商店(Microsoft Store),或者提示“无法将‘python’项识别为 cmdlet...”,这属于 Windows 的常见路径冲突问题,请参考本文第四节提供的排查方案。
Windows怎么用PowerShell执行python脚本
图 2:PowerShell 执行 Python 脚本的四个核心操作阶段

二、关键步骤:在 PowerShell 中执行脚本的常用方式

在日常开发与运维任务中,根据脚本所处的位置以及执行场景的不同,主要有以下三种调用方式。

方式一:切换工作目录后执行(最推荐的日常开发方式)

当 Python 脚本需要读取当前目录下的附属文件(如配置文件、CSV 数据集、图片)时,将 PowerShell 的当前工作目录切换至脚本所在路径是稳妥的做法。这样能保证脚本内部使用的相对路径能够准确解析。

操作步骤如下:

  1. 查看当前所处目录:使用 Get-Location 命令(或简写 pwd)。
  2. 切换至目标文件夹:使用 Set-Location 命令(或简写 cd)。
  3. 运行脚本文件:使用 python 文件名.py。
PowerShell 交互过程PowerShell
# 1. 切换工作目录至脚本所在的文件夹(假设项目位于 D 盘)
cd "D:\Projects\DataTask"

# 2. 列出目录内容,确认脚本文件存在
Get-ChildItem -Filter *.py

# 3. 调用 Python 解释器运行脚本
python data_process.py
示例输出
[2026-11-10 18:30:02] 开始加载数据文件...
[2026-11-10 18:30:03] 数据清洗完成,共处理 1,200 条记录。
任务成功结束,耗时 1.15 秒。

方式二:使用绝对路径直接执行

如果你编写了定时自动化任务,或者不想频繁切换当前的控制台目录,可以直接在 python 命令后紧跟脚本的完整绝对路径:

PowerShell 命令PowerShell
python "D:\Projects\DataTask\data_process.py"
空格处理规则:如果文件夹名或文件名中包含空格(例如 D:\My Projects\Task 1pp.py),路径两端必须使用半角双引号包裹。否则 PowerShell 会在遇到空格时将其截断拆分成多个独立参数,导致抛出“找不到文件”的异常。

方式三:使用 Windows Python 启动器(py.exe)执行与指定版本

Windows 平台的官方安装包默认会部署一个轻量级启动器 py.exe,它位于 C:\Windows 目录下。当你的系统中并存多个不同版本的 Python 时,可以通过启动器精准调用特定版本:

PowerShell 命令PowerShell
# 列出当前系统已安装的所有 Python 版本
py --list

# 强制使用指定的 Python 3.10 执行脚本
py -3.10 data_process.py

# 强制使用指定的 Python 3.12 执行脚本
py -3.12 data_process.py
Windows怎么用PowerShell执行python脚本
图 3:PowerShell 与 Python 进程间调用、路径寻址与标准 I/O 协作机制

三、进阶操作:参数传递、输出重定向与虚拟环境运行

在实际生产与自动化批处理场景中,通常不仅需要运行脚本,还需要向脚本传入配置参数、捕获运行日志,或在隔离的虚拟环境中执行。

1. 向 Python 脚本传递命令行参数

在 PowerShell 中向 Python 脚本传参非常简明,只需在脚本名称后面,依次以空格分隔写入参数即可:

PowerShell 命令PowerShell
python data_process.py --input raw_data.csv --batch 100 --verbose

在 Python 脚本端,可以通过内置的 sys.argv 列表或 argparse 模块解析这些参数。例如 sys.argv[0] 为脚本文件名,后续项依次为传入的各个标志与数值。

2. 标准输出重定向与日志保存

PowerShell 提供了灵活的管道符操作,可以将脚本打印到控制台的信息直接输出到文本文件,方便日后查验:

PowerShell 命令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 中使用虚拟环境的完整流程如下:

PowerShell 命令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 窗口生效,关闭窗口后自动恢复,既解决了执行问题,又保障了系统安全。
Windows怎么用PowerShell执行python脚本
图 4:PowerShell 运行 Python 脚本时的常见报错表现与排查决策树

四、常见问题排查与解决步骤

当执行 python 命令未能得到预期输出时,通常集中在以下三个典型故障点。

问题一:输入 python 后系统自动弹出微软应用商店

原因分析:Windows 10 和 Windows 11 在系统路径中预置了几个“应用执行别名”(App Execution Aliases)。当系统环境变量中尚未配置真正的 Python 路径时,系统会优先命中微软的应用商店占位符,从而自动唤起商城安装界面。

解决步骤:

  1. 点击 Windows 开始菜单,打开“设置”(快捷键 Win + I)。
  2. 进入“应用” → “高级应用设置” → “应用执行别名”(或在设置搜索框中直接搜索“应用执行别名”)。
  3. 在列表中找到“应用安装程序 (python.exe)”和“应用安装程序 (python3.exe)”,将右侧的开关全部切换为“关”。
  4. 重新打开一个新的 PowerShell 窗口进行测试。

问题二:提示“无法将‘python’项识别为 cmdlet、函数、脚本文件或可运行程序的名称”

原因分析:这说明 PowerShell 遍历了系统环境变量 $env:Path 中记录的所有目录,均未能找到 python.exe 可执行文件。这通常是因为在安装 Python 时,未勾选“Add Python to PATH”选项。

解决步骤:

  1. 找到 Python 的实际安装路径,通常位于当前用户的 AppData 目录,例如:
    C:\Users\你的用户名\AppData\Local\Programs\Python\Python311。
  2. 按 Win + R 输入 sysdm.cpl 打开系统属性,进入“高级”选项卡,点击“环境变量”。
  3. 在“用户变量”或“系统变量”中找到名为 Path 的条目,双击编辑,点击“新建”,将 Python 的主目录及其下的 Scripts 目录依次加入列表中。
  4. 配置完成后,必须关闭现有的 PowerShell 窗口并重新打开,以便重新加载最新的环境变量。

问题三:终端打印中文出现乱码(如显示为问号或异常字符)

原因分析:Windows 控制台默认的代码页编码为 GBK(代码页 936),而现代 Python 脚本文件与字符串处理默认使用 UTF-8 编码,字符集不匹配会导致控制台解码错误。

解决方案:在运行 Python 脚本之前,在 PowerShell 中执行以下命令,强制将控制台的输入输出编码统一为 UTF-8:

PowerShell 终端编码设置PowerShell
[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 启动器跨版本精确执行
Windows怎么用PowerShell执行python脚本
图 5:Windows PowerShell 执行 Python 核心命令与场景速查全景图

掌握在 PowerShell 中执行 Python 脚本的关键,在于理清目录定位、环境变量解析、路径空格引号包裹以及执行策略机制。遵循标准的工作目录切换流程,遇到异常时通过环境变量与别名排查,即可在 Windows 环境下顺畅稳定地运行并调度各类 Python 脚本任务。

相关专题:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表