Python脚本怎么在命令行运行

Noah
Noah
发布时间:2026-10-28 | 8人浏览过
原创

详细讲解在Windows、macOS和Linux命令行中运行Python脚本的完整步骤、路径定位、传参技巧及常见报错排查。

在命令行中运行 Python 脚本,核心原理是调用操作系统的终端程序(Windows 的命令提示符 CMD、PowerShell,或 macOS 与 Linux 的终端 Terminal),让系统找到 Python 解释器程序,并把脚本文件的存储路径作为参数传给它。最基础的执行命令仅需一行:python 脚本文件路径.py。无论操作系统如何差异化,底层执行逻辑均完全一致。

一、确认 Python 环境与命令别名

要在命令行运行脚本,前提是当前操作系统能够识别 python 命令。在终端中直接键入命令并按下回车,系统会沿着环境变量 PATH 所记录的目录清单逐一查找匹配的可执行文件。

打开终端窗口,输入以下命令核查环境是否可用:

python --version

在部分 Linux 发行版或 macOS 系统中,系统内置或额外安装的 Python 3 对应的别名可能是 python3,此时应执行:

python3 --version

如果控制台返回了具体的版本信息(如 Python 3.11.5),表明解释器已就绪。如果终端提示 'python' 不是内部或外部命令 或 command not found: python,则说明 Python 尚未安装,或者安装时没有将其主目录及 Scripts 目录添加到操作系统的环境变量 PATH 中。

Python脚本怎么在命令行运行
图 1:命令行执行 Python 脚本的调用链与环境变量寻址机制

二、定位脚本并执行的标准操作步骤

在实际操作中,运行一个 Python 脚本主要有两种路径策略:一种是“先切换目录再直接运行”,另一种是“直接提供脚本的完整路径”。前者适合日常调试与频繁交互,后者适合自动化脚本或计划任务。

准备测试脚本

在电脑中新建一个名为 hello.py 的文本文件,写入以下测试代码:

# hello.py
import sys
import os

print("=== Python 脚本运行测试 ===")
print(f"当前工作目录 (CWD): {os.getcwd()}")
print(f"当前执行解释器: {sys.executable}")
print("运行成功!")

方式一:切换至脚本所在目录运行(推荐)

最清晰不易出错的做法是使用 cd 命令切换当前命令行工作目录至脚本文件所在的文件夹:

  • Windows 命令行:若文件在 D 盘,需要使用 /d 参数跨盘符切换:
    cd /d D:\projects\demo
    python hello.py
  • macOS / Linux 终端:直接使用相对路径或家目录路径:
    cd ~/projects/demo
    python3 hello.py

此时终端输出示例:

=== Python 脚本运行测试 ===
当前工作目录 (CWD): /Users/username/projects/demo
当前执行解释器: /usr/local/bin/python3
运行成功!

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

如果不想切换工作目录,也可以在任意位置输入 Python 命令后,直接跟随脚本文件的绝对路径。注意:如果路径中包含空格,必须用英文双引号将路径包裹起来。

# Windows 环境下的绝对路径运行示例
python "C:\Users\Administrator\Desktop\my project\hello.py"

# macOS/Linux 环境下的绝对路径运行示例
python3 "/Users/username/Documents/my project/hello.py"
Python脚本怎么在命令行运行
图 2:在命令行中启动并运行 Python 脚本的四步标准流程

三、进阶运行模式与参数传递

在实际生产与自动化任务中,除了直接敲击 python script.py,经常需要向脚本传递动态参数,或者采用模块形式运行。

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

在脚本名称后面空格跟随的值会被作为命令行参数。Python 代码中可以通过标准库 sys.argv 直接获取:

# process_data.py
import sys

print("接收到的所有参数列表:", sys.argv)
if len(sys.argv) > 1:
    filename = sys.argv[1]
    print(f"处理目标文件: {filename}")
else:
    print("未传入文件名参数")

在命令行中传入参数执行:

python process_data.py data.csv --mode=fast

此时 sys.argv[0] 固定为脚本本身的文件名 process_data.py,sys.argv[1] 为 data.csv,sys.argv[2] 为 --mode=fast。

2. 模块运行模式(-m 参数)

许多第三方包或多文件项目在直接使用 python path/to/script.py 时会遇到 ImportError: attempted relative import with no known parent package。这是因为直接执行脚本会将脚本所在目录作为 sys.path[0],切断了包的上层组织关系。

使用 -m 参数可以让 Python 把目标作为一个模块执行,并将当前命令行工作目录加入模块搜索路径:

# 以模块模式执行包内的入口
python -m my_package.main

# 运行内置 HTTP 测试服务器
python -m http.server 8000
Python脚本怎么在命令行运行
图 3:直接脚本执行与 -m 模块模式的寻址机制与搜索路径差异

3. 输出重定向与后台执行

在服务器或自动化维护中,通常希望脚本在后台运行并将结果输出保存到日志文件中:

# Linux / macOS 下后台运行脚本并将标准输出与错误重定向到文件
nohup python3 task.py > task.log 2>&1 &

# Windows PowerShell 中保存输出到文件
python task.py | Out-File -FilePath task.log

四、常见报错与排查清单

初次在命令行运行 Python 脚本时,常遇到的错误多集中于环境变量、路径和虚拟环境方面。按照以下清单可快速定位原因:

报错提示内容 根本原因分析 对应解决策略
'python' 不是内部或外部命令 系统 PATH 环境变量中缺少 Python 安装路径 在系统高级设置的环境变量中添加 Python 主目录及 Scripts 目录,重启终端。
[Errno 2] No such file or directory 当前工作目录下没有该文件,或路径拼写有误 输入 dir(Windows)或 ls(macOS/Linux)核对文件实际名称,注意是否误加了 .txt 隐藏后缀。
ModuleNotFoundError: No module named 'xxx' 当前终端使用的解释器未安装该第三方库 确认是否未激活虚拟环境(venv)。使用 python -m pip install xxx 将库安装到当前解释器中。
SyntaxError: Non-UTF-8 code starting with... 代码包含中文注释但文件保存为 ANSI/GBK 编码 在编辑器中将文件编码转换为 UTF-8,并在文件首行指定 # -*- coding: utf-8 -*-。
排查技巧:确认当前使用的是哪一个 Python

如果电脑中安装了多个 Python(如系统自带、Anaconda、官方安装包),可通过在终端运行 where python(Windows)或 which python3(macOS/Linux)查明当前调用的究竟是哪一个具体路径下的解释器。

五、核心知识总结

在命令行运行 Python 脚本的核心流程可以概括为三个要素:解释器别名、执行参数与脚本工作路径。只要确认 Python 已经注册到系统 PATH 中,并使用 cd 正确定位到脚本所在目录,执行即可顺利完成。

Python脚本怎么在命令行运行
图 4:命令行运行 Python 核心要素与运维规范总结
相关标签:

本站声明

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

Python 相关产品和应用

全部下载

专题列表