Python Sublime text3和virtualenvs
我有不同的Python Sublime text3和virtualenvs,python,sublimetext3,virtualenvwrapper,Python,Sublimetext3,Virtualenvwrapper,我有不同的virtualenv(使用virtualenwrapper制作),我希望能够指定每个项目使用哪个virtualenv 由于我正在使用submimerepl插件进行自定义构建,如何指定使用哪个python安装来构建我的项目 例如,当我在项目A上工作时,我想用venvA的python运行脚本,当我在项目B上工作时,我想用venvB(使用不同的构建脚本)运行脚本。您正在寻找自定义构建系统 从菜单栏中,单击Tools->Build Systems->New Build System… 填写它提
virtualenv
(使用virtualenwrapper
制作),我希望能够指定每个项目使用哪个virtualenv
由于我正在使用submimerepl
插件进行自定义构建,如何指定使用哪个python安装来构建我的项目
例如,当我在项目A上工作时,我想用venvA的python运行脚本,当我在项目B上工作时,我想用venvB(使用不同的构建脚本)运行脚本。您正在寻找自定义构建系统 从菜单栏中,单击
Tools->Build Systems->New Build System…
填写它提供的模板,并将其保存在以结尾的任何文件名下。升华构建
到您的用户
文件夹中
以下是制作自定义生成系统的文档:
我建议为python脚本创建一个自定义构建系统,然后为您想要的每个虚拟环境添加变体。(参见变体)
一个构建系统,你可以从中切换
Tools -> Build Systems
(如果未自动检测到)并使用命令选项板(默认ctrl+shift p)在变量之间切换
唯一的“gotcha”是描述要运行的命令的
“cmd”
参数。默认情况下,它需要一个字符串数组作为命令运行,但您可以使用“shell\u cmd”
来代替,只使用一个字符串,说明如何通过命令行运行它。希望这是您所想象的。我试图简化我的解决方案,并删除一些您可能不需要的内容
这种方法的优点是:
- 按一个按钮启动带有正确解释器的SublimeREPL,并在需要时运行其中的文件
- 设置解释器后,在项目之间切换时不需要进行任何更改或额外的步骤
- 可以很容易地扩展到自动获取特定于项目的环境变量、所需的工作目录、运行测试、打开Django shell等
Project -> Edit Project
"settings": {
"python_interpreter": "/home/user/.virtualenvs/example/bin/python"
}
“python\u解释器”
项目设置键也被类似的插件使用
创建插件以获取此设置并启动SublimeREPL
软件包
目录:
Preferences -> Browse Packages...
project\u venv\u repls.py
import sublime_plugin
class ProjectVenvReplCommand(sublime_plugin.TextCommand):
"""
Starts a SublimeREPL, attempting to use project's specified
python interpreter.
"""
def run(self, edit, open_file='$file'):
"""Called on project_venv_repl command"""
cmd_list = [self.get_project_interpreter(), '-i', '-u']
if open_file:
cmd_list.append(open_file)
self.repl_open(cmd_list=cmd_list)
def get_project_interpreter(self):
"""Return the project's specified python interpreter, if any"""
settings = self.view.settings()
return settings.get('python_interpreter', '/usr/bin/python')
def repl_open(self, cmd_list):
"""Open a SublimeREPL using provided commands"""
self.view.window().run_command(
'repl_open', {
'encoding': 'utf8',
'type': 'subprocess',
'cmd': cmd_list,
'cwd': '$file_path',
'syntax': 'Packages/Python/Python.tmLanguage'
}
)
Preferences -> Key Bindings - User
//在repl中运行当前打开的文件
{
“键”:[“f5”],
“命令”:“project\u venv\u repl”
},
//运行repl而不包含任何文件
{
“键”:[“f6”],
“命令”:“project\u venv\u repl”,
“args”:{
“打开_文件”:空
}
},
//在repl中运行特定文件,将main.py更改为所需文件
{
“键”:[“f7”],
“命令”:“project\u venv\u repl”,
“args”:{
“打开文件”:“/home/user/example/main.py”
}
}
有一个名为Virtualenv
的sublime text3包,允许您从Virtualenv使用Python进行构建
它支持virtualenv中的任何Python版本,对我(MacOS)来说都很好
要安装它,我们只需命令+Shift+p调用pacakge控件(如果您还没有安装它),然后键入install
。下一步键入virtualenv
,当您看到它出现时,单击“返回”安装它
安装后,选择Tools
-->buildsystem
-->Python+Virtualenv
。然后可以使用command+B执行Python项目
单击此处查看更多信息。我有其他选择。只是创建一个新的“构建系统”,就像在虚拟环境中运行一样。这里我们称之为“我的python”。目的是使用这个构建系统直接运行我的脚本,而无需离开sublime。您需要:
首选项->浏览软件包
。这将打开放置设置文件的文件夹。进入dirUser
并创建一个名为my_python.sublime build
(由构建系统名和.sublime_build
)的新文件。完成此操作后,进入工具->构建系统
,您将看到一个新选项my_python
{
"shell_cmd": "/Users/Ted/bsd/vector/.v_venv/bin/python -u \"$file\"",
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
在shell\u cmd
中,将/Users/Ted/bsd/vector/.v\u venv/bin/python
更改为python虚拟环境的路径当您想更改虚拟环境时,只需将其路径复制到设置文件中,即可完成所有操作。也许该方法似乎包含了大量工作,但效果良好且方便。您能否指定“使用SublimeREPL插件进行自定义构建”的含义?我使用一种方法,通过项目的virtualenv自动打开并运行python脚本(在SublimeREPL中)只需按下一个按钮。我不确定这是否正是您想要的。如何将项目设置为在特定的virtualenv中运行?我知道没有内置的方式。我的方法包括为“python\U解释器”设置项目级设置,然后使用一个小的自定义插件来获取它,并用它运行sublimeREPL。如果你愿意,我可以在以后有时间的时候用完整的答案详细说明。是的,它会非常有用:)很好的帖子和很好的答案,但我无法让它工作。。。我已经在我的静脉中安装了烧瓶,只是为了试试你的scr