首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SublimeText3 Jedi自动完成插件无法识别virtualenv Python路径

SublimeText3 Jedi自动完成插件无法识别virtualenv Python路径
EN

Stack Overflow用户
提问于 2018-05-18 23:01:19
回答 2查看 647关注 0票数 0

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

代码语言:javascript
复制
"python_interpreter": "/home/username/.virtualenvs/cv3/bin/python"

问题在于,在/dependencies/jedi/api/environment.py中,方法_assert_safe不会将虚拟环境路径识别为安全路径。

代码语言:javascript
复制
def _assert_safe(executable_path, safe):
    if safe and not _is_safe(executable_path):
        raise InvalidPythonEnvironment(
            "The python binary is potentially unsafe.")

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-27 18:27:27

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

代码语言:javascript
复制
$ workon virtualenv_name
$ subl

现在_is_safe(executable_path)方法可以找到virtualenv Python可执行文件并返回True

票数 0
EN

Stack Overflow用户

发布于 2018-06-01 05:50:01

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50414200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档