Python怎么运行.py脚本文件:命令行执行与双击运行的区别

山海之间
山海之间
发布时间:2026-09-18 | 4人浏览过
原创

运行一个 .py 文件,本质上就是让 Python 解释器读取文件中的代码并执行。最常见、也最适合学习和开发的方式,是打开命令行进入脚本所在目录,然后执行 python 文件名.py。如果系统已经正确关联了 .py 文件,也可以直接双击运行,但这种方式不方便查看报错、传递参数和控制运行环境,因此通常只适合比较简单的脚本。

例如有一个名为 hello.py 的文件,只要 Python 已经安装并且命令可以正常使用,就可以在终端中运行它:

python hello.py

有些系统使用的是 python3 命令,则改为:

python3 hello.py
SVG 配图 1
图1:Python脚本文件的基本执行过程

一、先准备一个可以运行的.py文件

为了把运行过程看清楚,可以先建立一个最简单的脚本。新建文件 hello.py,写入下面的代码:

name = "Python"

print("脚本已经开始运行")
print("Hello,", name)
print("脚本运行结束")

保存以后,这个文件已经是一个完整的 Python 脚本。运行成功时,示例输出为:

脚本已经开始运行
Hello, Python
脚本运行结束

这里有一个容易混淆的地方:创建了 .py 文件,并不代表它会自己运行。操作系统还需要找到 Python 解释器,并把这个文件交给解释器处理。

二、使用命令行运行.py脚本

命令行执行是更推荐的方式,因为运行位置、Python版本、命令参数和错误信息都比较明确。写代码、学习 Python、排查问题时,基本都应该优先掌握这种方法。

Windows下运行

假设 hello.py 保存在:

D:\python-demo\hello.py

可以打开“命令提示符”或 PowerShell,然后进入该目录:

cd D:\python-demo

再运行:

python hello.py

如果电脑上的 Python Launcher 可以使用,也可能使用:

py hello.py

执行后,终端不会立即消失,程序的输出和报错会直接留在当前窗口中。

macOS和Linux下运行

假设文件位于:

~/python-demo/hello.py

打开终端后执行:

cd ~/python-demo
python3 hello.py

具体使用 python 还是 python3,取决于当前系统中的 Python 安装和命令配置。可以执行下面的命令确认:

python --version

或者:

python3 --version

只要能够正常显示 Python 版本信息,说明对应命令能够找到解释器。

SVG 配图 2
图2:通过命令行执行Python脚本的标准步骤

三、不进入目录,也可以直接运行.py文件

cd 进入脚本目录并不是硬性要求。只要在命令中写出正确的文件路径,Python同样可以执行。

Windows示例:

python D:\python-demo\hello.py

macOS或Linux示例:

python3 ~/python-demo/hello.py

路径中有空格时,最好使用引号包住完整路径。例如:

python "D:\Python Demo\hello.py"

否则命令行可能把一个完整路径拆成多个参数,最终提示找不到文件。

需要区分“脚本路径”和“当前工作目录”。 直接写完整路径能够找到脚本,但程序内部使用相对路径读取文件时,相对路径通常仍然以当前工作目录为基准,而不一定以脚本文件所在目录为基准。

例如脚本中写着:

with open("config.txt", "r", encoding="utf-8") as f:
    print(f.read())

如果程序提示找不到 config.txt,并不一定是 Python 没有找到脚本,更可能是当前工作目录里没有这个文件。这也是命令行执行时经常需要关注运行目录的原因。

四、双击.py文件是怎么运行的

在已经安装并正确配置 Python 文件关联的系统中,双击 hello.py 时,操作系统可以根据 .py 扩展名找到对应的 Python 程序,然后把脚本交给它执行。

表面上看,双击似乎绕过了命令行,其实底层仍然需要 Python 解释器。区别只是“启动方式”由用户手动输入命令,变成了由操作系统根据文件关联自动启动。

对于只打印几行文字的控制台脚本,双击运行时经常出现一个明显现象:窗口打开一下,很快又关闭。

这通常不是程序没有运行,而是程序执行得太快:

  1. 双击 hello.py;
  2. 系统启动 Python 和控制台窗口;
  3. 代码执行完成;
  4. Python进程退出;
  5. 临时打开的控制台窗口随之关闭。
SVG 配图 3
图3:命令行执行与双击执行的运行过程差异

五、命令行执行与双击运行具体有什么区别

对比项目 命令行执行 双击运行
启动方式 手动执行 python xxx.py 由系统根据文件关联启动Python
错误信息 通常会保留在终端中 窗口可能立即关闭,难以看到报错
命令行参数 可以方便地传递 普通双击不方便传递参数
Python版本 可以明确选择具体命令或环境 取决于系统的文件关联配置
虚拟环境 可以先激活环境再运行 通常不会自动使用当前项目的虚拟环境
当前目录 可以主动控制 更容易受到启动方式和系统环境影响
适用场景 开发、学习、调试、自动化脚本 简单工具或配置好的桌面使用场景

真正影响比较大的并不是“需要多输入一条命令”,而是命令行让运行环境变得可控。例如同一台电脑安装了多个 Python,或者项目使用了虚拟环境,那么“到底是哪一个 Python 在运行这个文件”就非常重要。

六、需要传递参数时,应该使用命令行

很多 Python 脚本并不是直接运行就结束,而是需要用户传入文件名、数字或其他参数。这种情况用命令行会方便得多。

例如建立 greet.py:

import sys

if len(sys.argv) < 2:
    print("请提供一个名字")
else:
    print("你好," + sys.argv[1])

通过命令行执行:

python greet.py Zhang

示例输出:

你好,Zhang

这里的 Zhang 就是传给脚本的命令行参数。普通的双击操作没有一个自然的位置让用户输入这类参数,因此需要参数的脚本一般不适合依赖双击启动。

七、双击后窗口一闪而过怎么办

如果只是为了查看脚本输出,最合理的处理方式不是想办法“让窗口别关”,而是直接从已经打开的命令行中执行脚本。这样即使程序出现异常,完整的错误信息也会留在窗口中。

例如程序中存在错误:

print(user_name)

如果变量 user_name 没有定义,Python会输出异常信息。命令行执行时可以直接看到错误类型和对应代码位置,而双击执行时,这些信息可能随着窗口关闭而消失。

如果这个脚本本来就是设计给普通用户双击使用,并且确实需要在结束前等待用户确认,可以根据程序需求加入:

input("按回车键退出...")

但不应该为了掩盖程序错误,给所有脚本都机械地加上这行代码。开发和调试阶段仍然应该从终端运行并解决真正的报错。

八、为什么输入python hello.py却提示找不到文件

一个非常常见的原因是:命令行当前所在目录和 hello.py 实际保存目录不同。

例如脚本位于:

D:\python-demo\hello.py

但终端当前位于:

C:\Users\User

此时直接执行:

python hello.py

Python会尝试在当前目录寻找 hello.py,自然可能找不到。

可以进入正确目录:

cd D:\python-demo
python hello.py

也可以直接写完整路径:

python D:\python-demo\hello.py

九、提示python不是命令,和.py文件本身没有关系

如果输入:

python hello.py

系统提示无法识别 python 命令、找不到命令或类似信息,那么问题发生在 Python 解释器这一层,而不是 hello.py 文件。

可以分别检查:

python --version
python3 --version
py --version

哪个命令能够正常返回版本信息,就可以根据当前系统配置使用哪个。若都不能使用,则需要检查 Python 是否已经安装,以及相关命令是否已经加入系统可搜索的路径。

这也解释了为什么有时双击 .py 能运行,但终端中的 python 命令不能用:文件关联和命令搜索路径是两个不同的配置机制,不能简单认为其中一个正常,另一个就一定正常。

十、使用虚拟环境时更应该从命令行运行

实际项目经常给不同程序安装不同版本的第三方库,这时通常会使用 Python 虚拟环境。

例如项目结构如下:

python-demo/
├── .venv/
└── hello.py

运行项目之前一般先激活虚拟环境,再执行脚本。这样 hello.py 使用的是当前项目环境里的 Python 和依赖。

如果直接双击脚本,操作系统通常只会按照 .py 文件关联启动某个 Python,并不知道你希望使用项目中的 .venv。

于是可能出现一种情况:代码本身没有问题,但运行时提示:

ModuleNotFoundError

原因可能只是双击启动的 Python 与安装第三方库时使用的 Python 不是同一个环境。

十一、双击运行并不等于.py文件变成了独立程序

能够双击 .py 文件,并不表示这个文件已经变成像普通 Windows 可执行程序那样完全独立的软件。它通常仍然依赖本机的 Python 解释器和对应第三方库。

如果准备把程序发送给没有安装 Python 的用户使用,仅仅发送一个 .py 文件往往不够。这属于程序打包和发布问题,与“如何执行现有.py脚本”是另一件事。

十二、实际应该选择哪种运行方式

如果是自己学习 Python、编写程序、运行下载下来的源码或排查错误,优先使用命令行。它可以清楚看到程序输出、异常信息、当前目录和使用的 Python 环境。

如果脚本已经配置完善,不需要命令行参数,也不要求用户观察控制台信息,只是一个简单的本地辅助工具,那么双击启动会更方便。但要确认文件关联、Python环境以及脚本使用的依赖都已经准备好。

SVG 配图 4
图4:Python脚本运行方式选择总结

总结

Python运行 .py 脚本最基本的方法,就是让 Python 解释器读取脚本文件。命令行中通常使用 python 文件名.py 或 python3 文件名.py,运行前可以先用 cd 进入文件目录,也可以直接指定完整路径。

双击 .py 文件并不是另一套执行机制,而是操作系统根据文件关联替你启动 Python。它操作简单,但不方便查看报错、传递命令行参数,也不容易明确控制 Python 版本、虚拟环境和当前工作目录。

因此,对于学习、开发、调试以及大多数脚本运行场景,命令行更合适;对于已经配置完善、环境固定、不需要参数和控制台交互的简单脚本,才比较适合使用双击运行。

相关标签:

本站声明

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

Python 相关产品和应用

全部下载

专题列表