当前位置: 首页 > 面试题库 >

崇高的text3和virtualenvs

王经赋
2023-03-14
问题内容

我有不同virtualenv的(由制成virtualenwrapper),并且我希望能够指定virtualenv要在每个项目中使用哪个。

由于我正在使用SublimeREPL插件进行自定义构建,因此如何指定用于构建项目的python安装?

例如,当我在项目AI上工作时,想要使用venvA的python运行脚本,而当我在BI项目上工作时,想要使用venvB运行东西(使用其他构建脚本)。


问题答案:

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

这种方法的优点是:

  • 只需按一下按钮即可启动具有正确解释器的SublimeREPL, 在需要时在其中运行文件。
  • 设置解释器后,在项目之间切换时无需进行任何更改或其他步骤。
  • 可以轻松扩展以自动选择项目特定的环境变量,所需的工作目录,运行测试,打开Django shell等。

让我知道您是否有任何疑问,或者我是否完全想念您要做什么。

设置项目的Python解释器

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

    Project -> Edit Project
    
  2. 在项目设置中添加一个新密钥,该密钥指向所需的virtualenv:

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

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

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

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

    Preferences -> Browse Packages...
    
  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'
                }
            )

设置热键

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

    Preferences -> Key Bindings - User
    
  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"
        }
    }


 类似资料:
  • 在之前已经了解了什么是响应式,其实响应式设计可以有两条道走,一条是移动优先的响应式设计(Mobile First RWD),一种是通常的响应式设计。像 Bootstrap 这样的前端 CSS 框架,就声称自己是 Mobile First 。 那什么是 “移动优先的响应式设计”?它的优势在哪里呢? 1.移动优先的响应式设计 Luke Wroblewski 在2009年写得一篇名为 Mobile Fi

  • 我必须找到从根节点到叶节点的最大和。我提出了以下节点,但它没有给出正确的输出。树可以有2个子节点以上(它不是二叉树)。 我用了另一种方法来解决我的问题。尽管知道正确的解决方案可以很好地找到非二叉树的最大和路径。

  • null 基本上,具有内存缓存和可以响应命令的服务器的机器的普通香草实现和Redis盒子之间有什么区别?我也明白答案需要非常庞大,并且应该包括非常复杂的细节来完成。但是,我要找的是一些通用的技术,而不是所有的细微差别。

  • 问题内容: 我有一些容器,他们的孩子只是绝对的/相对的。如何设置容器的高度,以便他们的孩子进入其中? 这是代码: HTML CSS 这是一个jsfiddle。我希望“栏”文本出现在4个正方形之间,而不是在它们后面。 有简单的解决方法吗? 请注意,我不知道这些子项的高度,也无法为容器设置高度:xxx。 问题答案: 如果我了解您要正确执行的操作,那么我认为使用CSS保持孩子的绝对位置是不可能的。 绝对

  • 主要内容:1. width,2. height,3. max-width 和 max-height,4. min-width 和 min-heightCSS 尺寸属性指的就是元素的宽度和高度属性,虽然说非常简单,但却是必须掌握的技能。CSS 中提供了 width、height、max-width、min-width、max-height 和 min-height 等几个属性来设置元素的宽度和高度,这些元素使用起来非常简单,下面我们就来简单介绍一下。 1. width 通过 width 属性可以设

  • 问题内容: 假设您得到以下名为Employee的简单数据库表,该表具有2个列,分别名为Employee ID和Salary: 我想写一个查询,从员工那里选择max(salary)作为max_salary,2nd_max_salary 然后它应该返回 我知道如何找到第二高的薪水 或找到第n个 但我无法弄清楚如何将这2个结果结合起来以获得所需的结果 问题答案: 您可以只运行2个查询作为内部查询以返回2