Atom运行Python需配置绝对路径,禁用别名和软链;script插件优先使用Command字段,应清空该字段仅填Python Path;atom-python-run须关闭Use System Python并设绝对路径;切换环境后必须重启Atom;验证需检查sys.executable与sys.path。

Atom 本身不带 Python 解释器,所有“运行”动作都依赖你本地已安装的 python3 或虚拟环境中的 python 可执行文件。配错路径、用错命令别名、或忽略环境隔离,是 90% 的 command not found 和 ModuleNotFoundError 根源。
script 插件里填什么才算有效 Python 路径
必须是可执行文件的**绝对路径**,不能是别名、软链(除非系统明确维护)、也不能只写 python 或 python3 —— 这些在 Atom 图形界面启动时大概率不可见。
- macOS(Apple Silicon):用
which python3查到类似/opt/homebrew/bin/python3,就填这个完整路径 - Ubuntu/WSL:
which python3返回/usr/bin/python3,直接粘贴 - Windows:用
where python或where python3,结果通常是C:\Users\Me\AppData\Local\Programs\Python\Python311\python.exe,注意结尾必须是.exe - conda 环境:填
~/miniconda3/envs/myenv/bin/python(macOS/Linux)或C:\Users\Me\anaconda3\envs\myenv\python.exe(Windows) - venv 环境:填项目目录下
.venv/bin/python(macOS/Linux)或.venv\Scripts\python.exe(Windows)
填完后别急着试运行,先点开 Atom 的 Dev Tools → Console,看有没有报 Failed to spawn command python3 类错误——有,说明路径还是错的。
为什么改了 script 设置,Ctrl+Shift+B 还是调用系统 python
因为 script 插件默认读取的是 Command Options → Python Path,但如果你同时启用了 Command Options → Command 字段,并且里面写了 python,它会**优先用这个字段覆盖 Python Path**。
- 最稳妥做法:清空
Command字段,只填Python Path - 如果非要用
Command字段,必须写成完整路径(如/usr/bin/python3),不能写python3 - 检查
Config.cson是否有残留配置:script: { commandOptions: { python: "python3" } }—— 这种写法在新版 Atom 中已失效,且会和 UI 设置冲突
验证方式:在终端中运行 /path/you/just/entered -c "import sys; print(sys.executable)",输出应与你填的路径一致。
atom-python-run 插件怎么避免误用全局 Python
atom-python-run 默认行为比 script 更“安静”,它不会报路径错误,而是静默 fallback 到 python 命令,导致你明明配了 venv 却还在用系统 Python。
- 进插件 Settings,把
Python Command改成绝对路径(同上),不是python3 - 关闭
Use System Python(如果存在该选项) - 确保
File Name是当前文件名(如main.py),不是路径;否则它可能去项目根目录找,而非当前文件所在目录 - 勾选
Run in Terminal,这样输出能显示完整 traceback,方便判断是不是 import 失败
特别注意:每次切换虚拟环境(比如从 venv 切到 poetry shell),必须重启 Atom 或手动重载插件,否则它仍缓存旧的解释器路径。
验证解释器是否真被 Atom 正确调用
光看 “Hello World” 输出成功没用。真正要确认的是:包能不能 import、路径对不对、编码是否一致。
- 写一段测试代码保存为
test_env.py:
import sys
print("Executable:", sys.executable)
print("Version:", sys.version)
print("Path[0]:", sys.path[0])
try:
import requests
print("requests OK")
except ImportError as e:
print("requests missing:", e)
- 用你配好的插件运行它,观察输出的
sys.executable是否与你填的路径一致 - 如果
requests missing,说明插件没走对环境 —— 回头检查路径、是否激活了 venv、是否 pip install 在对应环境下 - 如果
sys.path[0]是项目根目录,但你的脚本在子目录,而代码里用了open("data.txt"),就会FileNotFoundError——atom-python-run会 cd 到文件所在目录,script默认在项目根目录,这点差异常被忽略
复杂点在于:Atom 不告诉你它到底用了哪个 shell、加载了哪些 profile、PATH 是怎么拼出来的。调试时得靠 sys.executable 和 sys.path 实锤,而不是相信设置界面上那个输入框看起来“填对了”。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











