V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
JerningChan
V2EX  ›  Python

请教一下 vscode 写 py 装哪个自动提示的插件最好用

  •  
  •   JerningChan · 2020-02-07 18:30:41 +08:00 · 8642 次点击
    这是一个创建于 1512 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想请问一下各位 dalao,vscode 写 py 要用什么插件才好啊?
    我现在好像就一个 python 一个 highlight-icemode
    发现原生的 print 之类的能很好提示,但是一些自己写的模块
    已经 import 了,却不能提示,这个要怎么解决一下啊?
    我是用的 mac vscode
    35 条回复    2020-08-31 13:45:17 +08:00
    icylogic
        1
    icylogic  
       2020-02-07 18:32:27 +08:00   ❤️ 4
    icylogic
        2
    icylogic  
       2020-02-07 18:34:39 +08:00
    https://docs.microsoft.com/en-us/visualstudio/intellicode/media/python-intellicode.gif

    最近某版本开始甚至支持了 Jupyter Notebook,挺好用的。

    自己写的没提示可能是没加 type hint

    https://docs.python.org/3/library/typing.html
    xiri
        3
    xiri  
       2020-02-07 18:42:08 +08:00
    官方的那个 python 插件不就够用了吗
    qcts33
        4
    qcts33  
       2020-02-07 19:10:17 +08:00
    把 Jedi 禁用一下,这样就自动启用 python language server 了
    janxin
        5
    janxin  
       2020-02-07 19:47:21 +08:00
    官方有个 Python 插件
    JerningChan
        6
    JerningChan  
    OP
       2020-02-07 23:12:48 +08:00
    @janxin 就是叫 python 那个吧?
    那个我装了,但是我自己写的模块,import 后还是不能提示啊。。。
    JerningChan
        7
    JerningChan  
    OP
       2020-02-07 23:14:26 +08:00
    @xiri 官方那个,好像提示一下自带的还是可以的,但是我今天有个很神奇的地方,time 这个模块都不提示。。。
    JerningChan
        8
    JerningChan  
    OP
       2020-02-07 23:15:37 +08:00
    @icylogic 嗯,先试试这个 intellicode 看看先,谢谢哈
    dragonsunmoon
        9
    dragonsunmoon  
       2020-02-07 23:46:25 +08:00   ❤️ 2
    推荐一下: Kite
    Kite is a plugin for your IDE that uses machine learning to give you useful code completions for Python. Start coding faster today.
    https://www.kite.com/integrations/vs-code/
    terence4444
        10
    terence4444  
       2020-02-08 00:00:38 +08:00 via iPhone
    考虑一下 pycharm 吧,不用太多配置就很好用
    i0error
        11
    i0error  
       2020-02-08 00:04:10 +08:00 via Android
    tabnine
    Trim21
        12
    Trim21  
       2020-02-08 00:16:10 +08:00 via Android
    自己写的模块不补全是有配置错误吧,感觉第三方工具也不一定能帮你解决这个问题
    wunonglin
        13
    wunonglin  
       2020-02-08 00:20:05 +08:00
    写 py 用 vscode 本身就是个错误。。。
    deorth
        14
    deorth  
       2020-02-08 09:26:00 +08:00
    官方的 python 有时能在 exception 时自动断点,有时不能,我还找不到规律。很难受
    hareandlion
        15
    hareandlion  
       2020-02-08 09:46:11 +08:00 via Android
    已换回 pycharm ce…
    JerningChan
        16
    JerningChan  
    OP
       2020-02-08 10:02:49 +08:00
    @terence4444 我原来也是用这个 pycharm 的,但是有时在 mbp 上用时,久了一开就要升级之类卡一会才能用😂
    JerningChan
        17
    JerningChan  
    OP
       2020-02-08 10:03:59 +08:00
    @Trim21 😂,这样吗?我以前用 vim 时,用那个 ycm_extra 就可以补全自己的写的模块
    JerningChan
        18
    JerningChan  
    OP
       2020-02-08 10:05:25 +08:00
    @wunonglin 其实还好吧?不过我觉得 pycharm 有个好的地方就是社区版,远程调试的虽然繁杂点,但是比 vscode 的要好,vscode 的要在目标机器装软件,而且还对系统有要求。。。简直是坑
    ytmsdy
        19
    ytmsdy  
       2020-02-08 11:22:21 +08:00
    pycharm !
    ClericPy
        20
    ClericPy  
       2020-02-08 13:39:20 +08:00
    1. 既然楼上已经提到关掉 jedi 用微软自带的 LSP, 那我稍微说下这个自带补全的感受... 刚开始用的时候惊为天人, 好用, 配合 mypy 和 type hints 做 linter, 体验不错, 跳转速度解析速度以及文档提示体验极棒, 也不用老去 jedi 文件夹删那两三个 GB 的 cache, 因为微软 LSP 的 cache 在哪至今没找到...

    2. 用过半年左右, 发现只开微软的自动补全, 提示会奇卡无比, 后台分析目录的速度也越来越慢, 进而不装 intelligence code 插件, 都没法快速提示补全了, 每次都要自己 ctrl+enter 等半天出结果, 也没找到什么靠谱点的解决方法, 凑合使着

    3. Python 插件在官方 github 上有个 issue 讲的是那些 from .xx import xxx 的导入无法跳转, 这个在 jedi 是正常补全的, Pycharm 里也是正常补全的, 就 VSCODE 里用微软 LS 的情况下无法跳转到定义, issue 里好像提到是 LS 那边 upstream 问题, 至今没修复, 测试的方式如下

    代码输入
    from asyncio.base_events import tasks
    跳转到 base_events
    里面很多

    from . import constants
    from . import coroutines
    from . import events
    from . import futures
    from . import protocols

    这些都没法再次跳转了, 但是在 settings 里注释掉
    // "python.jediEnabled": false,
    就可以跳转了

    无奈
    ClericPy
        21
    ClericPy  
       2020-02-08 14:23:46 +08:00

    纠正一下上贴回复
    相对引用的 bug 1 年前就修复过了, 后来我这里不生效是因为以前为了省内存
    "python.analysis.symbolsHierarchyDepthLimit": 0,
    这个设置删了就恢复了...

    溜了
    JerningChan
        22
    JerningChan  
    OP
       2020-02-08 17:25:13 +08:00
    @ClericPy 我在想,是不是换回 pycharm 呢?
    其实我是觉得用 pycharm 在应急时 mbp 会比较麻烦啊
    ClericPy
        23
    ClericPy  
       2020-02-08 17:27:22 +08:00
    @JerningChan #22 自己凭感觉吧, 社区版 Pycharm 也不错, 不喜欢折腾的人选它肯定没错

    我主要是要写多种语言, 多个 IDE 懒得换也懒得都开, 所以一直编辑器写代码, 以前用的 Sublime Text , 迁移 vscode 无痛, 不像 Pycharm 很多操作习惯改不顺手
    JerningChan
        24
    JerningChan  
    OP
       2020-02-09 12:21:30 +08:00
    @ClericPy 对,我原来也是用 vim 来写的,但是有时临时换机器,发现要重配一下 vim 太艰辛了。。。
    而且 pycharm 好像会在项目目录建一个 .idea 也是烦,svn 会检测到。。。
    hxhc
        25
    hxhc  
       2020-02-09 12:48:08 +08:00 via Android
    官方 Python 插件➕tabnine
    ClericPy
        26
    ClericPy  
       2020-02-09 12:48:44 +08:00
    @JerningChan #24 vscode 的 .code 也烦啊, 还好 github 默认 ignore 里带了... 目前 vscode 没什么太大毛病, 内存泄漏问题已经好了很久了, 平时内存也就六七百 MB, 虽然没装插件的 Pycharm 也才五百多. 目前我用着不爽的地方就是关了 jedi 以后, 新打开的非工作区文件无法激活 code analysis, 又懒得切换解释器或者 Reload Window, 只能快捷键打开文件夹拖进来它引用的东西
    目前编程环境来说, 还是什么顺手用什么吧, Pycharm 是好使, 我也可以申请开源项目版的免费, 但尝试过十几次, 就是习惯不起来, 可能是我没处理过超过百万行的代码吧
    xiaoFine
        27
    xiaoFine  
       2020-02-09 13:56:26 +08:00
    @icylogic 终于支持 Jupyter 了!

    以前 vscode 和 pycharm 的支持都不理想,一度放弃折腾回去写脚本了。。
    JerningChan
        28
    JerningChan  
    OP
       2020-02-09 14:30:47 +08:00
    @hxhc 嗯?好啊,我也来试试这个先
    JerningChan
        29
    JerningChan  
    OP
       2020-02-09 14:31:55 +08:00
    @ClericPy 嗯?我的好像没生成.code 啊。。。
    ClericPy
        30
    ClericPy  
       2020-02-09 17:22:51 +08:00
    @JerningChan #29 .vscode 文件夹, 切换解释器就会产生, 一般是工作区独立的个人 settings.json

    补全的插件方面, 大部分都试过, 很有名气的主要是 kite, tabnine, 还有微软的

    前两者要么得安装 nodejs 环境, 要么想用有的智能服务得上传代码, 我就跳过去了, 微软的这个么, 一开始感觉用处不大, 后来发现微软自带 LS 经常崩溃或者卡死, 导致补全得等三四秒, 卡的一塌糊涂, 但是开了 intelli-code 以后就不指望那个补全了, 速度快了不少
    JerningChan
        31
    JerningChan  
    OP
       2020-02-09 17:35:44 +08:00
    @ClericPy #30 😂,哦,原来这样啊,话说那你现在一直在用 intelli-code 么?
    唉,我英文水平太菜,只能上来寻求帮助啊
    JerningChan
        32
    JerningChan  
    OP
       2020-02-09 17:36:36 +08:00
    @ClericPy 话说,我 intelli-code tabnine 都一齐装了,应该不会有什么冲突吧?
    ClericPy
        33
    ClericPy  
       2020-02-09 18:10:04 +08:00
    @JerningChan #32
    autodocstring v0.4.0
    beautify v1.5.0
    code-blue v0.9.12
    code-runner v0.9.15
    code-settings-sync v3.4.3
    errorlens v2.9.0
    git-graph v1.21.0
    gitblame v3.0.1
    gitignore v0.6.0
    Go v0.13.0
    html-snippets v0.2.1
    indent-rainbow v7.4.0
    material-icon-theme v3.9.2
    one-monokai v0.4.6
    python v2020.1.58038
    sublime-keybindings v4.0.6
    todo-tree v0.0.167
    unique-lines v1.0.0
    vscode-autohotkey v0.2.2
    vscode-language-pack-zh-hans v1.42.2
    vscode-open-in-github v1.3.6
    vscodeintellicode v1.2.5
    necomancer
        34
    necomancer  
       2020-02-11 02:30:28 +08:00
    kite,这个很厉害。
    chaleaoch
        35
    chaleaoch  
       2020-08-31 13:45:17 +08:00
    @ClericPy 大佬还能找到这个 issue id 吗? #20 万分感谢.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2546 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 15:42 · PVG 23:42 · LAX 08:42 · JFK 11:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.