我有不同virtualenv的(由制成virtualenwrapper),并且我希望能够指定virtualenv要在每个项目中使用哪个。
virtualenv
virtualenwrapper
由于我正在使用SublimeREPL插件进行自定义构建,因此如何指定用于构建项目的python安装?
SublimeREPL
例如,当我在项目AI上工作时,想要使用venvA的python运行脚本,而当我在BI项目上工作时,想要使用venvB运行东西(使用其他构建脚本)。
希望这是您所想象的路线。我试图简化解决方案,并删除一些您可能不需要的东西。
这种方法的优点是:
让我知道您是否有任何疑问,或者我是否完全想念您要做什么。
打开我们的项目文件进行编辑:
Project -> Edit Project
在项目设置中添加一个新密钥,该密钥指向所需的virtualenv:
"settings": { "python_interpreter": "/home/user/.virtualenvs/example/bin/python" }
一个"python_interpreter"项目设置键也被类似的插件蟒蛇。
"python_interpreter"
浏览到Sublime Text的Packages目录:
Packages
Preferences -> Browse Packages...
为我们的插件创建一个新的python文件,如下所示: project_venv_repls.py
project_venv_repls.py
将以下python代码复制到此新文件中:
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
添加一些按键绑定以使用插件。一些例子:
// Runs currently open file in repl { "keys": ["f5"], "command": "project_venv_repl" }, // Runs repl without any file { "keys": ["f6"], "command": "project_venv_repl", "args": { "open_file": null } }, // Runs a specific file in repl, change main.py to desired file { "keys": ["f7"], "command": "project_venv_repl", "args": { "open_file": "/home/user/example/main.py" } }