Mac和Linux系统下怎么运行py后缀文件
在 Mac 和 Linux 系统中,以 .py 结尾的文件是 Python 脚本源码文件。运行这类文件最直接、通用的方式是打开系统终端,输入 python3 脚本文件路径 并按回车。如果希望脚本像系统内置命令一样直接通过 ./脚本名.py 启动,只需在文件第一行指定解释器路径并赋予执行权限。无论是 macOS 还是常见的 Ubuntu、Debian、CentOS 等 Linux 发行版,两者都基于 Unix 体系标准,脚本的执行逻辑和命令行交互完全相通。本文将从环境检查开始,系统讲解运行 .py 文件的具体步骤、不同方式的区别以及常见报错的解决方法。
一、准备工作:打开终端与确认 Python 环境
在开始运行脚本前,需要先启动命令行交互界面并确认系统中已经安装了 Python 3 环境。
- 在 Mac 系统中:按下快捷键
Command + 空格键调出聚焦搜索(Spotlight),输入Terminal或“终端”并回车打开;也可以在“访达”的“应用程序” > “实用工具”目录中找到它。 - 在 Linux 系统中:多数桌面环境(如 GNOME、KDE)支持快捷键
Ctrl + Alt + T快速打开终端窗口,也可以在应用启动器中搜索Terminal。
打开终端后,执行以下命令检查 Python 3 的安装状态与版本号:
python3 --version
如果终端正确显示出类似 Python 3.x.x 的版本信息,说明环境已经就绪。现代 Mac 和主流 Linux 系统通常预装了 Python 3 或随开发者工具提供;如果终端提示 command not found: python3,则需要先通过系统的包管理器进行安装(如 Ubuntu 执行 sudo apt install python3,Mac 执行 brew install python)。
二、核心方法一:使用 python3 命令直接运行
这是最稳妥、最普遍的方式。无论文件是否具备可执行权限,只要当前登录用户对脚本拥有“读权限”,就可以将其交给 Python 解释器执行。
1. 先进入脚本所在目录运行(推荐)
假设在用户的 Documents 文件夹下有一个名为 hello.py 的文件,内容如下:
# hello.py
print("Hello from Mac and Linux!")
在终端中,首先使用 cd(Change Directory)命令切换到文件所在的目录:
cd ~/Documents
确认当前目录下包含该文件(可输入 ls 查看),然后输入 python3 加上文件名并回车:
python3 hello.py
2. 使用完整绝对路径或相对路径运行
如果不想改变当前终端的工作目录,可以直接在 python3 命令后面追加文件的完整绝对路径:
python3 /Users/username/Documents/hello.py # Mac 系统示例
python3 /home/username/Documents/hello.py # Linux 系统示例
python3 (后面保留一个空格),然后从文件管理器中直接把 .py 文件拖拽进终端窗口,终端会自动粘贴该文件的完整绝对路径,避免手动输入发生拼写错误。
三、核心方法二:配置 Shebang 将脚本作为独立程序直接执行
在日常使用中,每次都输入 python3 较为冗长。在 Unix/Linux 体系中,可以通过两个步骤让 .py 文件像系统命令一样直接通过 ./hello.py 执行。
第一步:在脚本首行添加 Shebang 指针
打开 hello.py,在文件的第一行插入以下代码:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
print("Hello from Mac and Linux!")
以 #! 开头的行被称为 Shebang(或 Hashbang)。/usr/bin/env python3 的作用是让系统通过当前环境变量自动查找 python3 解释器的位置,而不是写死某个具体路径,从而保证脚本在不同 Mac 和 Linux 机器上的兼容性。
第二步:赋予脚本可执行权限
默认新建的文件只有读写权限,没有执行权限(x)。在终端中通过 chmod 命令为文件添加执行权限:
chmod +x hello.py
第三步:直接在终端中运行
此时即可直接运行脚本:
./hello.py
注意命令前面的 ./:由于 Unix 系统出于安全考虑,默认不会在当前工作目录(.)中搜寻可执行程序。如果不加 ./ 只输入 hello.py,系统会提示 command not found;./ 明确告知 Shell 从当前目录下查找并启动该脚本。
四、进阶场景:传递参数与虚拟环境隔离
在实际生产和复杂项目中,运行脚本往往伴随着外部输入参数或特定的 Python 第三方依赖包。
1. 运行时传递命令行参数
在执行脚本名称后直接加入空格和参数,参数会自动存入 Python 的 sys.argv 列表中:
python3 process.py dataset.csv --limit 100
在 Python 脚本内部,sys.argv[0] 为脚本文件名,后续项依次为传入的参数内容。
2. 在虚拟环境(Virtualenv)中运行
当项目依赖特定版本的库时,推荐使用虚拟环境避免污染全局系统 Python 环境:
# 激活虚拟环境
source .venv/bin/activate
# 此时运行 python 即直接对应虚拟环境下的解释器
python hello.py
# 退出虚拟环境
deactivate
如果在自动化脚本中不想经历先激活(activate)再运行的步骤,也可以直接使用虚拟环境目录下的 Python 解释器二进制文件运行:
.venv/bin/python hello.py
五、常见报错与排查指南
在初次运行 Python 脚本时,可能会遇到几种典型的报错提示。根据具体的错误信息,可以快速对应解决:
六、运行方式速查与总结
为了便于在不同场景下快速选择合适的方法,以下汇总了在 Mac 与 Linux 环境下运行 Python 文件的常见模式与适用边界:
| 运行模式 | 典型命令 | 前置条件 | 适用场景 |
|---|---|---|---|
| 显式调用 | python3 script.py |
安装 Python 3 环境,具备文件读权限 | 日常代码调试、新手学习、一次性临时运行 |
| 可执行调用 | ./script.py |
首行配置 Shebang,且执行 chmod +x |
命令行小工具、系统定时任务、自动化维护脚本 |
| 环境隔离调用 | .venv/bin/python script.py |
提前创建虚拟环境并安装所需依赖 | 团队协作工程、生产部署、多版本依赖管理 |
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













