python – 升华text3和virtualenvs - 代码日志

python – 升华text3和virtualenvs

我是全新的sublime3,但我找不到任何有用的我的问题…

我有不同的virtualenvs(由virtualenwrapper制作),我希望能够指定每个项目使用哪个venv

由于我使用SublimeREPL插件来进行自定义构建,所以我可以指定哪个python安装来构建我的项目?

例如,当我在项目A上工作时,我想使用venvA的python运行脚本,当我在项目B上工作时,我想用venvB(使用不同的构建脚本)运行东西,

对不起我可怕的英语

希望这是你想象的线条。我试图简化我的解决方案,并删除一些你可能不需要的东西。

这种方法的优点是:

>单击按钮启动具有正确解释器的SublimeREPL,如果需要,可以在其中运行文件。
>设置解释器后,在项目之间切换时不需要更改或额外的步骤。
>可以轻松扩展,自动获取项目特定的环境变量,所需的工作目录,运行测试,打开Django shell等。

如果您有任何问题,或者如果我完全错过了您想要做的事情,请告诉我们。

设置项目的Python解释器

打开我们的项目文件进行编辑:

Project -> Edit Project

>在项目的设置中添加一个新密钥,指向所需的virtualenv:

"settings": {
    "python_interpreter": "/home/user/.virtualenvs/example/bin/python"
}

“python_interpreter”项目设置键也可用于像Anaconda这样的插件。

创建插件以获取此设置并启动SublimeREPL

>浏览到Sublime Text的Packages目录:

Preferences -> Browse Packages...

>为我们的插件创建一个新的python文件,如: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'
            }
        )

设置热键

>打开用户keybind文件:

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"
    }
}
http://stackoverflow.com/questions/24963030/sublime-text3-and-virtualenvs

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:python – 升华text3和virtualenvs