Sublime text3和virtualenvs

Doc*_*Doc 39 python virtualenvwrapper sublimetext3

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

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

由于我使用SublimeREPL插件来自定义构建,我如何指定用于构建项目的python安装?

例如,当我在项目工作我想要运行与venvA的Python脚本,当我在B项目工作,我想运行与venvB事情(使用不同的构建脚本)

对不起我可怕的英语......

Soy*_*ise 52

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

这种方法的优点是:

  • 按下单按钮以使用正确的解释器启动SublimeREPL 根据需要在其中运行文件.
  • 设置解释器后,在项目之间切换时不需要任何更改或额外步骤.
  • 可以轻松扩展为自动获取项目特定的环境变量,所需的工作目录,运行测试,打开Django shell等.

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

设置Project的Python解释器

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

    Project -> Edit Project
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在项目的设置中添加一个新键,指向所需的virtualenv:

    "settings": {
        "python_interpreter": "/home/user/.virtualenvs/example/bin/python"
    }
    
    Run Code Online (Sandbox Code Playgroud)

一个"python_interpreter"项目设置键也被类似的插件蟒蛇.

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

  1. 浏览到Sublime Text的Packages目录:

    Preferences -> Browse Packages...
    
    Run Code Online (Sandbox Code Playgroud)
  2. 为我们的插件创建一个新的python文件,如: project_venv_repls.py

  3. 将以下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'
                }
            )
    
    Run Code Online (Sandbox Code Playgroud)

设置热键

  1. 打开用户密钥绑定文件:

    Preferences -> Key Bindings - User
    
    Run Code Online (Sandbox Code Playgroud)
  2. 添加一些键绑定以使用该插件.一些例子:

    // 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"
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)


Jay*_*ong 19

有一个名为的sublime text3包,Virtualenv允许你使用virtualenv中的Python进行构建.

它支持你的virtualenv中的任何版本的Python,并且对我来说非常好(MacOS).

要安装它,我们只需command+ Shift+ P来调用pacakge控件(如果你还没有它,请安装它),然后输入install.下一种类型virtualenv,当您看到它时,单击return以安装它.

安装后,选择Tools- > Build System- > Python + Virtualenv.然后你可以使用command+ B来执行你的Python项目.

单击此处查看更多信息.

  • 有一个叫"VirtualEnv:添加目录"的电话 (3认同)

Guo*_*eng 10

我有一个替代方案。只需创建一个新的“构建系统”,就像在虚拟环境中一样运行。这里我们称它为“my_python”。目的是使用这个构建系统直接运行我的脚本而不离开 sublime。你需要:

  1. 首先,preferences->Browse Packages。这将打开一个文件夹,其中包含设置文件。进入 dirUser并创建一个名为my_python.sublime-build(由构建系统名称后跟.sublime_build.组成的新文件。执行此操作后,转到Tools -> Build System,您将看到一个新选项my_python
  2. 将以下 JSON 设置添加到该文件。

    {
        "shell_cmd": "/Users/Ted/bsd/vector/.v_venv/bin/python -u \"$file\"",
        "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
        "selector": "source.python"
    }
    
    Run Code Online (Sandbox Code Playgroud)

    在里面shell_cmd,更改/Users/Ted/bsd/vector/.v_venv/bin/python为您的python 虚拟环境的路径。

  3. 然后只需使用快捷键来构建您的脚本。

当您想更改虚拟环境时,只需将其路径复制到设置文件即可。也许这种方法看起来包含很多工作,但它运行良好且方便。


小智 5

您正在寻找定制构建系统。

从菜单栏中,单击Tools -> Build Systems -> New Build System...

填写它提供的模板并将其保存在以.sublime-build您的User文件夹结尾的任何文件名下。

以下是制作自定义构建系统的文档:

https://www.sublimetext.com/docs/3/build_systems.html

我建议为 python 脚本创建一个自定义构建系统,然后为您想要的每个虚拟环境添加变体。(参见变体https://www.sublimetext.com/docs/3/build_systems.html#option-variants

当你创建一个构建系统时,你可以将它们切换

Tools -> Build Systems
Run Code Online (Sandbox Code Playgroud)

(如果未自动检测到)并使用命令面板(默认 ctrl + shift p)在变体之间切换。

唯一的“问题”是"cmd"描述要运行什么命令的参数。默认情况下,它需要一个字符串数组作为命令运行,但您可以使用"shell_cmd"一个字符串来表示如何通过命令行运行它。