Autocomplete SublimiteText3绝地自动完成插件无法识别virtualenv Python路径

Autocomplete SublimiteText3绝地自动完成插件无法识别virtualenv Python路径,autocomplete,sublimetext3,sublime-text-plugin,Autocomplete,Sublimetext3,Sublime Text Plugin,我已经在Sublime Text 3 v3.1.1上安装并配置了Jedi autocomplete v0.12.0。在绝地用户设置中,我将python\u解释器设置为指向virtualenvs中的python版本 "python_interpreter": "/home/username/.virtualenvs/cv3/bin/python" 问题在于,在中,方法\u assert\u safe无法将virtualenv路径识别为安全路径 def _assert_safe(executabl

我已经在Sublime Text 3 v3.1.1上安装并配置了Jedi autocomplete v0.12.0。在绝地用户设置中,我将
python\u解释器设置为指向
virtualenvs
中的python版本

"python_interpreter": "/home/username/.virtualenvs/cv3/bin/python"
问题在于,在中,方法
\u assert\u safe
无法将virtualenv路径识别为安全路径

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

\u assert\u safe
方法调用方法
def\u is\u safe(可执行路径)
,该方法也返回false。这两个方法中的代码非常简单,我知道发生了什么,只是没有看到任何解决方案。出于测试目的,我将
virtualenv
PYTHONPATH
环境变量添加了
virtualenv
PYTHONPATH路径,它没有任何区别。

我能找到的唯一解决方案是从
virtualenv
下的终端启动
subgrame
。在终端:

$ workon virtualenv_name
$ subl

现在
\u是安全的(可执行路径)
方法可以找到
virtualenv
Python可执行文件并返回
True

create_environment(path,safe=False),但是很明显这个崇高的插件不允许这样做(但也许应该?)


IMO更好的解决方案是创建venv而不是VirtualNV。这些方法在绝地武士身上效果更好,因为它们没有复制整个Python二进制文件(无论如何,这没有多大意义)。我不是100%确定这对你有帮助,但它可能会帮助其他人。

如果你确定它是安全的,你可能应该使用safe=False,一切都会正常。不知道如何使用SublimiteText3实现,但这是我的看法。@DaveHalter我认为硬编码值不是一个好的解决方案。然而,我通过在virtualenv下从终端启动Sublime解决了这个问题。