Python脚本怎么在命令行中执行

小石头
小石头
发布时间:2026-11-12 | 5人浏览过
原创

详细讲解在Windows、macOS与Linux系统命令行中执行Python脚本的具体方法,涵盖基础运行命令、工作目录与路径定位、命令行传参、模块执行机制以及常见报错排查。

在命令行中执行 Python 脚本的核心操作非常直接:打开终端,使用 cd 命令切换到脚本所在的文件夹,然后输入 python 脚本名.py(在 macOS 和部分 Linux 系统中通常为 python3 脚本名.py)并按下回车键。本文将系统梳理从环境确认、目录定位、基础运行,到传参调试与常见报错排查的完整实操细节。

Python脚本怎么在命令行中执行
图 0:命令行调用 Python 解释器与执行流示意图

一、准备工作:打开终端并确认 Python 解释器状态

在任何操作系统中,所谓的“命令行”都是指一个允许输入文本命令并接收文本反馈的控制台程序。在执行代码之前,需要先唤出对应的控制台窗口:

  • Windows 用户:按下键盘上的 Win + R,输入 powershell 或 cmd 后回车;或者在任意文件夹的空白处按住 Shift 单击右键,选择“在此处打开 PowerShell 窗口”。
  • macOS 用户:使用快捷键 Command + 空格 调出聚焦搜索(Spotlight),输入“终端”(Terminal)并回车。
  • Linux 用户:通常可以使用快捷键 Ctrl + Alt + T 快速开启默认终端。

打开终端后,第一件事是验证系统是否已经正确安装了 Python 并且能够识别相关命令。直接在终端中输入以下版本检查指令并回车:

终端命令
python --version
示例输出: Python 3.11.4

如果输入该命令后提示找不到命令,或者直接弹出了微软应用商店(Windows 系统常见情况),请尝试执行:

终端命令(备用检测)
python3 --version # 或者 Windows 下专属的启动器: py --version

注意区分 Python 与 Python 3:在 macOS 和 Linux 系统中,历史上系统自带的 Python 2 绑定在 python 命令上,而较新的 Python 3.x 解释器通常被命名为 python3。因此在非 Windows 环境下,推荐默认使用 python3 来运行现代 Python 程序。

Python脚本怎么在命令行中执行
图 1:从打开终端到成功执行代码的操作流向图

二、核心操作:定位工作目录并执行脚本

编写一段基础的 Python 脚本,并将其保存为 hello.py。例如文件内容如下:

Python 代码(hello.py)
# hello.py import sys print("Hello from Command Line!") print(f"当前运行的 Python 解释器路径: {sys.executable}")

新手初次在终端中运行该文件时,最容易遇到的报错就是 python: can't open file 'hello.py': [Errno 2] No such file or directory。这是因为终端每次启动时,都会处于一个特定的“当前工作目录”(Current Working Directory)。如果当前工作目录与脚本所在的磁盘路径不一致,解释器便找不到该文件。

方式 A:先切换目录,再以文件名执行(最稳妥)

假设你的 hello.py 保存在桌面或者项目的文件夹下,可以通过终端的 cd(Change Directory)命令进入该目录:

终端命令(macOS / Linux 示例)
# 1. 切换到存放脚本的文件夹 cd ~/Desktop/my_project # 2. 列出当前目录下的文件,确认 hello.py 存在 ls # 3. 执行 Python 脚本 python3 hello.py
终端命令(Windows PowerShell 示例)
# 1. 切换到指定驱动器和目录 cd D:\workspace\my_project # 2. 查看文件 dir # 3. 运行脚本 python hello.py
控制台打印输出: Hello from Command Line! 当前运行的 Python 解释器路径: /usr/local/bin/python3

方式 B:在任意工作目录直接传入完整路径

如果在当前工作目录下不便执行 cd 切换,也可以直接将脚本的绝对路径或相对路径作为参数传递给解释器:

终端命令
# 使用绝对路径运行 python /Users/username/Desktop/my_project/hello.py # Windows 环境下的绝对路径(包含空格的路径务必使用双引号包裹) python "C:\Users\admin\My Projects\hello.py"

实用小技巧:大多数终端(包括 macOS Terminal、Windows PowerShell、Linux 控制台)都支持文件拖拽。在终端中先敲入 python (注意末尾保留一个空格),然后从文件资源管理器或访达中将 .py 文件直接拖入终端窗口,终端会自动补全该脚本的完整绝对路径,直接回车即可运行。

Python脚本怎么在命令行中执行
图 2:工作目录(CWD)对相对路径解析的影响对比

三、进阶方式:传递命令行参数与模块化执行

在实际开发和运维脚本中,我们往往不需要在代码内部写死输入值,而是希望在敲下命令的同时,向脚本动态传递选项和参数。

1. 使用 sys.argv 读取命令行参数

Python 提供了内置的 sys.argv 列表来接收用户输入的参数。sys.argv[0] 永远是脚本本身的名称,从 sys.argv[1] 开始则是用户追加的实际参数:

Python 代码(greet.py)
# greet.py import sys if len(sys.argv) > 1: user_name = sys.argv[1] else: user_name = "访客" print(f"你好, {user_name}! 接收到的参数总数: {len(sys.argv)}")
终端命令
python greet.py 张三
示例输出: 你好, 张三! 接收到的参数总数: 2

2. 模块运行模式:python -m

当项目变得复杂、出现多层包与模块嵌套时,直接运行深层的子文件经常会遭遇 ImportError: attempted relative import with no known parent package 错误。此时推荐使用 -m(module)参数:

终端命令
# 在项目根目录,以模块方式执行 package/processor.py python -m package.processor

这种做法会让 Python 自动将当前执行命令的目录置入模块搜索路径 sys.path 的首位,确保同包内部的相对导入正常工作。

3. 类 Unix 系统的直接执行(Shebang 与执行权限)

在 Linux 和 macOS 环境下,可以通过在脚本第一行添加 Shebang 声明,并赋予文件可执行权限,从而省略前面的 python3 前缀:

脚本首行配置与终端授权
#!/usr/bin/env python3 # -*- coding: utf-8 -*- print("通过 ./ 方式直接运行成功!")
终端操作
# 赋予脚本可执行权限 (+x) chmod +x task.py # 直接作为可执行程序发起 ./task.py
Python脚本怎么在命令行中执行
图 3:不同命令行调用语法的环境机制与行为特征对比

四、常见报错表现与排查步骤

在终端执行脚本的过程中,绝大多数问题并非出在代码本身的业务逻辑,而是出在环境与路径识别上。以下列出排查频率最高的四类报错及其修复方案:

1. 'python' 不是内部或外部命令 / command not found: python

原因:操作系统的环境变量 PATH 中没有登记 Python 解释器的安装目录。操作系统在各个默认文件夹下查找名为 python 的程序未果,因此拒绝执行。
排查与修复:

  • 在 Windows 系统中,重新运行 Python 安装包,勾选安装界面下方的“Add python.exe to PATH”并点击 Repair(修复)。
  • 若暂时不方便重装,可以在终端尝试使用 py 脚本名.py 代替。
  • 在 macOS 或 Linux 中,尝试输入 which python3 确认其安装路径是否正常输出(如 /usr/local/bin/python3)。

2. FileNotFoundError: [Errno 2] No such file or directory

原因:终端当前所在路径下根本不存在输入的文件名,或者文件名拼写存在大小写、扩展名错误(例如误将文件保存为 demo.py.txt)。
排查与修复:在终端键入 ls(macOS/Linux)或 dir(Windows),查看打印出的列表中是否有目标文件;确认当前目录无误后再发起命令。

3. ModuleNotFoundError: No module named 'xxx'

原因:在代码编辑器(如 PyCharm、VS Code)中运行正常,但在系统命令行中却提示找不到某个第三方库。这通常是因为编辑器内部配置了独立的虚拟环境(Virtualenv),而当前在终端中直接敲 python 调用的是全局解释器,全局环境中并未安装该库。
排查与修复:检查当前终端是否处于虚拟环境中。若尚未激活,可执行对应的激活脚本,或者直接使用虚拟环境中的 Python 二进制执行:

终端命令(激活虚拟环境)
# macOS / Linux 激活命令 source venv/bin/activate # Windows PowerShell 激活命令 .\venv\Scripts\Activate.ps1 # 激活后终端提示符前通常会出现 (venv) 标记,再执行脚本: python app.py
Python脚本怎么在命令行中执行
图 4:常见终端报错排查决策树与速查解决方案

五、总结与日常操作建议

在命令行中执行 Python 脚本的本质,是将目标文件路径作为输入参数传递给Python 解释器程序。熟练掌握这一过程可以归纳为三条核心操作准则:

  1. 明确解释器来源:在多环境共存的电脑中,时刻清楚当前终端敲下的 python 对应的是系统全局环境还是项目专属虚拟环境;必要时使用 which python(Mac/Linux)或 where.exe python(Windows)核对绝对路径。
  2. 保持目录感知:养成执行前先 cd 到目标工程根目录的习惯,这能最大程度规避脚本内部相对文件读写(如配置文件、数据表)所引发的路径寻址错误。
  3. 善用终端自动化特性:善用 Tab 键进行文件名与路径的自动补全,善用键盘“向上箭头”调出历史执行命令,善用文件拖拽快速获取绝对路径。这些操作能大幅减少输入差错,提升日常脚本运行与调测效率。
相关专题:

本站声明

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

Python 相关产品和应用

全部下载

专题列表