必须手动在script插件设置中将Command设为虚拟环境内python绝对路径(如.venv/bin/python或.venv\Scripts\python.exe),并从终端启动Atom以继承正确环境变量,否则GUI启动时无法识别venv。

script插件不识别venv里的python,怎么办?
script插件默认调用系统PATH里的python或python3,根本不会自动探测当前项目下的.venv或venv目录。哪怕你激活了虚拟环境,在Atom里按Ctrl+I运行脚本,它仍可能用系统Python,导致ModuleNotFoundError。
- 必须手动填绝对路径:进
Settings → Packages → script → Settings,把Command设为.venv/bin/python(macOS/Linux)或.venv\Scripts\python.exe(Windows)——注意是相对当前文件所在目录的路径,不是项目根目录 - 别用
python -m venv生成的venv名:Windows上常见Scripts目录大小写敏感,scripts或SCRIPTS都不行,必须严格匹配 - 路径含空格或中文?会直接失败。建议虚拟环境建在无空格纯英文路径下,比如
/home/user/myproj/.venv
autocomplete-python补全找不到虚拟环境包
autocomplete-python默认只扫描标准库和当前项目目录,对venv里的第三方包视而不见。这不是插件坏了,而是它压根没被告知去哪找。
- 在插件设置里填
Python Path:指向虚拟环境内的python可执行文件,例如.venv/bin/python(Linux/macOS)或.venv\Scripts\python.exe(Windows) -
Extra Paths字段要填site-packages路径:运行python -c "import site; print(site.getsitepackages()[0])"获取准确路径,粘贴进去;多路径用换行分隔,不要逗号 - 改完设置后必须重启Atom——插件不会热重载site-packages路径,旧缓存还在用系统Python的
sys.path
从桌面图标启动Atom,venv路径总失效
这是最隐蔽的坑:GUI方式启动Atom(双击图标、Dock点击、开始菜单)时,进程完全不读~/.zshrc或~/.bash_profile,也就看不到venv激活后的PATH变更。哪怕你在终端里source .venv/bin/activate再启动Atom,也无效。
- Mac用户:终端进项目目录,执行
open -a Atom或atom .(确保已安装shell命令) - Windows用户:关闭所有Atom窗口,用PowerShell进入项目目录,运行
atom . - Linux用户:同理,用
atom .启动,别用GNOME/KDE桌面启动器——它们启动的Atom看到的which python3和你终端里不一样
poetry环境怎么配?
poetry不修改全局PATH,也不在项目目录放.venv,script插件根本找不到它的Python解释器。硬填路径会失效,因为poetry每次poetry install可能重建venv位置。
- 先在项目根目录运行
poetry shell,再启动Atom:poetry shell && atom .——这样Atom继承的是poetry激活后的环境变量 - 或者不用poetry shell,直接填
poetry run python到script的Command字段,但要注意:这会让%f等占位符失效,得用完整命令模板,比如poetry run python -u %f - autocomplete-python不支持poetry原生集成,必须手动填
Python Path为poetry run python的输出路径,可用poetry env info --path查venv真实路径

















