Python中如何在SublimeText3的REPL中为当前文件配置虚拟环境运行
看中了 REPL 可以分屏,可以有交互界面、dos 界面、还可以直接 run 脚本。直接 run 时,对于一些一直运行的脚本,如 flask,可以右键 kill 掉,这点比 build system 有优势多了。
但是,ctrl shift+P 打开 command_palette 后,输入SublimeREPL: Python-virtualenv,选择某个虚拟环境后,就直接转到 python 交互界面了:
Python 3.5.4 (v3.5.4, Aug 8 2017, 02:17:05) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>
直接运行这个 file 的话(tool->sublimeREPL->python->python - run current file),只能在 global 的 python 环境下运行。
Python中如何在SublimeText3的REPL中为当前文件配置虚拟环境运行
在Sublime Text 3的REPL中为当前文件配置虚拟环境运行,可以通过修改或创建SublimeREPL的构建系统来实现。核心思路是让REPL使用虚拟环境中的Python解释器,而不是系统默认的。
首先,确保你已经在项目中创建并激活了虚拟环境(例如使用venv)。虚拟环境的路径通常包含一个Scripts(Windows)或bin(macOS/Linux)目录,里面有所需的Python解释器。
接下来,在Sublime Text 3中操作:
-
安装Package Control和SublimeREPL(如果还没装):
- 按
Ctrl+Shift+P打开命令面板,输入Install Package并选择,然后搜索安装SublimeREPL。
- 按
-
配置针对当前项目的REPL设置: 这是最灵活的方式。打开你的项目文件夹,然后:
- 在菜单栏选择
Project->Save Project As...,保存一个.sublime-project文件到你的项目根目录。 - 用文本编辑器打开这个
.sublime-project文件。它的结构是JSON。你需要添加一个"build_systems"部分来定义自定义的REPL构建系统。
- 在菜单栏选择
-
编辑
.sublime-project文件: 在文件的顶层对象中,添加或修改"build_systems"键。下面是一个配置示例,假设你的虚拟环境文件夹名为venv,并且位于项目根目录:{ "folders": [ { "path": "." } ], "build_systems": [ { "name": "Python - REPL (Virtual Env)", "target": "repl_open", "cmd": ["python", "-u", "$file"], "env": { "PYTHONIOENCODING": "utf-8" }, "selector": "source.python", "path": "$project_path/venv/Scripts", // Windows 路径 // "path": "$project_path/venv/bin", // macOS/Linux 路径 "external_id": "repl_python", "encoding": "utf-8", "syntax": "Packages/Python/Python.tmLanguage" } ] }关键参数解释:
"name": 构建系统在Sublime底部状态栏显示的名字。"target": "repl_open": 这是SublimeREPL提供的特殊目标,用于在REPL中运行。"cmd": 执行的命令。这里就是python -u "$file"。由于下面指定了"path",系统会优先在该路径下寻找python命令。"path": 这是核心配置。将其设置为你的虚拟环境中的可执行文件目录(Scripts或bin)。$project_path变量代表你的.sublime-project文件所在目录(通常是项目根目录)。请根据你的操作系统注释/取消注释正确的行。"external_id": "repl_python": 告诉SublimeREPL使用Python的REPL配置。
-
使用配置好的REPL:
- 保存
.sublime-project文件。 - 在Sublime Text中打开你的Python文件。
- 在底部状态栏的构建系统选择器(或按
Ctrl+Shift+B)中,选择你刚配置的"Python - REPL (Virtual Env)"。 - 然后按
Ctrl+B(或Tools->Build)运行。文件内容将被发送到使用虚拟环境Python解释器启动的REPL中执行。
- 保存
一句话总结:通过修改项目的 .sublime-project 文件,在 "build_systems" 中指定虚拟环境的 Scripts 或 bin 目录作为 "path",并设置 "target": "repl_open"。
研究了半天,我自己暂时的解决办法:
(##how to run current file in sublimeREPL with python virtualenv )
1. 记得修改一下 python_virtualenv_paths,把它设置成"~\Envs"
2. 在 packages\sublimeREPL 中找到 lang_integration.py,把 PythonVirtualenvRepl 这个 class 中的<br>"cmd": [python_executable, "-u", "${packages}/SublimeREPL/config/Python/<a target="_blank" href="http://ipy_repl.py" rel="nofollow noopener">ipy_repl.py</a>"],改<br>
改为<br>"cmd": [python_executable, "-u", "$file_basename"],<br>
3. 快捷键设置:<br>{<br> "keys":["f5"],<br> "caption": "SublimeREPL: Python - RUN current file",<br> "command": "run_existing_window_command", <br> "args": {<br> "id": "python_virtualenv_repl",<br> "file": "config/Python/Main.sublime-menu"<br> }<br> },<br>
打算从现在开始起不用 pycharm 了,速度太慢了。运行 flask app 时如果想停止,直接右键 kill 即可。

