代码之家  ›  专栏  ›  技术社区  ›  zindarod

Sublimitext3绝地自动完成插件无法识别virtualenv python路径

  •  0
  • zindarod  · 技术社区  · 6 年前

    我已经在Sublime Text 3 v3.1.1上安装并配置了绝地自动完成v0.12.0。在绝地用户设置中,我设置了 python_interpreter 指向中的python版本 virtualenvs .

    "python_interpreter": "/home/username/.virtualenvs/cv3/bin/python"
    

    问题在于 /dependencies/jedi/api/environment.py ,方法 _assert_safe 无法将virtualenv路径识别为安全路径。

    def _assert_safe(executable_path, safe):
        if safe and not _is_safe(executable_path):
            raise InvalidPythonEnvironment(
                "The python binary is potentially unsafe.")
    

    这个 _断言安全 方法调用方法 def _is_safe(executable_path) 它也返回假。这两个方法中的代码非常简单,我理解正在发生的事情,只是没有看到任何解决方案。为了测试的目的,我添加了 virtualenv python路径到 PYTHONPATH 环境变量,没有什么区别。

    2 回复  |  直到 6 年前
        1
  •  0
  •   zindarod    6 年前

    我唯一能找到的解决方案是 Sublime 从下面的终端 virtualenv . 在终端中:

    $ workon virtualenv_name
    $ subl
    

    现在 _is_safe(executable_path) 方法可以找到 虚拟环境 python可执行文件并返回 True .

        2
  •  0
  •   Dave Halter    6 年前

    绝地检查口译员是否安全。虽然使用任何你想要的环境对你来说都是完全合理的,但是有时候争论它是否安全有点困难。你可以用 create_environment(path, safe=False) 当你使用绝地时,很明显这个崇高的插件不允许这样做(但也许应该这样做?).

    在我看来,一个更好的解决方案是创建venv而不是virtualenv。这些对绝地武士来说效果更好,因为他们没有复制整个python二进制文件(这无论如何都没有什么意义)。我不能百分之百地肯定这对你有帮助,但可能对其他人有帮助。