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
jeeyong
V2EX  ›  Python

sublime 代码提示会有很多没用的内容.

  •  
  •   jeeyong · 2022-10-02 00:24:19 +08:00 · 4273 次点击
    这是一个创建于 782 天前的主题,其中的信息可能已经有所发展或是发生改变。
    环境是 Sublime + Anaconda + Virtualenv
    Anaconda 配置:
    {
    "anaconda_linting": false,
    "python_interpreter": "/Users/jeeyong/.pyenv/shims/python",
    "suppress_word_completions": true,
    "suppress_explicit_completions": true,
    "complete_parameters": true,
    "complete_all_parameters": true,
    "swallow_startup_errors": true,
    }

    问题是代码提示的时候会有很多其他的方法?或者内容, 想要的还经常排在很后面..比如:
    https://imgur.com/iI9gcQW

    需要的 get 再完成输入后, 就没了, 其他方法很多都是错误的..
    求教怎么设置..
    32 条回复    2022-12-17 18:29:28 +08:00
    mineralsalt
        1
    mineralsalt  
       2022-10-02 02:04:25 +08:00   ❤️ 3
    PyCharm, VSCode 不好么, 折腾自己没意思
    jfcherng
        2
    jfcherng  
       2022-10-02 02:16:58 +08:00
    雖然我沒在用 Anaconda , 不過這些 completions 看著都不像是來自 Anaconda
    jfcherng
        3
    jfcherng  
       2022-10-02 02:19:55 +08:00
    safe mode 試了一下 Anaconda :
    jeeyong
        4
    jeeyong  
    OP
       2022-10-02 08:58:05 +08:00
    @jfcherng 他应该是 Sublime 的提示 和 Anaconda 在一起的.


    @jfcherng 请问 safe Mode 如何设置.?
    另外, 并不是所有的库都如此...
    jeeyong
        5
    jeeyong  
    OP
       2022-10-02 08:58:53 +08:00
    @mineralsalt 都装了, 也都配置好了....
    可能就是习惯吧..
    Sublime 感觉打开就来..舒服..
    pycharm 稍微复杂一点的项目会用...
    vscode 大部分时间再调试 js
    jeeyong
        6
    jeeyong  
    OP
       2022-10-02 09:05:10 +08:00
    @jfcherng 我找到了 safe mode 的方式.
    jfcherng
        7
    jfcherng  
       2022-10-02 09:16:51 +08:00
    requests 庫可能需要 stubs (?)

    可以試試 pip install types-requests
    jfcherng
        8
    jfcherng  
       2022-10-02 09:25:29 +08:00   ❤️ 1
    或者跳槽改用 LSP + LSP-pyright (狗頭
    jeeyong
        9
    jeeyong  
    OP
       2022-10-02 09:35:09 +08:00
    @jfcherng 不知道什么原理, 但 types-requests 看起来是有用的..
    ![](//imgur.com/rG4qgYl)
    jeeyong
        10
    jeeyong  
    OP
       2022-10-02 09:36:34 +08:00
    ChrisFreeMan
        11
    ChrisFreeMan  
       2022-10-02 12:05:09 +08:00   ❤️ 6
    虽然没用过 sublime ,但是配置 python 的开发环境不要太简单,无论什么编辑器,只要支持 lsp ,就配置三个东西就行了
    pyright
    autopep8 || black (代码格式化)
    mypy (如果使用静态类型的话,建议覆盖掉 pyright 的静态检查)
    jeeyong
        12
    jeeyong  
    OP
       2022-10-02 12:16:21 +08:00
    @ChrisFreeMan 我我我我我我....
    感谢..
    惊艳了我...

    Sublime Install Packages -> LSP & lsp-pyright...
    哈哈



    ChrisFreeMan
        13
    ChrisFreeMan  
       2022-10-02 12:22:12 +08:00
    @jeeyong 这下舒服了
    jeeyong
        14
    jeeyong  
    OP
       2022-10-02 12:24:35 +08:00
    @jfcherng 你和我说 lsp 的时候, 我搜索的方向完全是错误的..所以没发现这个好东西.
    跳槽了!

    @ChrisFreeMan 我现在的表情就好像你得头像...
    果断卸载了 Anaconda...

    那么,请问 vscode 的 ms-pyright 好用嘛? 替代原来的 python 插件.
    ChrisFreeMan
        15
    ChrisFreeMan  
       2022-10-02 12:29:12 +08:00
    @jeeyong 那个所谓的 python 插件是一个集成的配置环境,和 pyright 不是一个东西,pyright 只是 lsp 。而 python 插件可以让你选择配置更多的功能,比如选择其他 lsp ,配置自动格式化插件,配置代码 lint 等等
    jeeyong
        16
    jeeyong  
    OP
       2022-10-02 12:39:24 +08:00
    @ChrisFreeMan 喔...受教.
    jfcherng
        17
    jfcherng  
       2022-10-02 13:19:23 +08:00   ❤️ 1
    如果你習慣用鍵盤操作的話,LSP 的 default keybinding 裡有很多範例,可以自己配置一下。
    GTim
        18
    GTim  
       2022-10-02 17:18:17 +08:00
    @jeeyong 你这主题好看啊,是啥
    jeeyong
        19
    jeeyong  
    OP
       2022-10-02 18:57:56 +08:00
    @GTim 代码主题是 brogrammer. Sublime 主题是 predawn

    然后 settings 里添加如下修改

    "predawn_findreplace_small": true,
    "predawn_quick_panel_small": false,
    "predawn_sidebar_arrows": false,
    "predawn_sidebar_large": false,
    "predawn_sidebar_medium": true,
    "predawn_sidebar_narrow": false,
    "predawn_sidebar_small": false,
    "predawn_sidebar_xlarge": false,
    "predawn_sidebar_xsmall": false,
    "predawn_tabs_active_underline": true,
    "predawn_tabs_large": false,
    "predawn_tabs_medium": true,
    "predawn_tabs_small": false,
    "theme": "predawn-DEV.sublime-theme",
    jeeyong
        20
    jeeyong  
    OP
       2022-10-02 18:58:13 +08:00
    @jfcherng 嗯...摸索一下.....感谢哦
    brucmao
        21
    brucmao  
       2022-10-02 19:11:32 +08:00
    我用的 LSP-pylsp 当时按这个配置的,提示好像没有 LSP-pyright 多
    https://yeray.dev/python/setting-up-sublime-text-4-for-python
    PrinceofInj
        22
    PrinceofInj  
       2022-10-02 20:06:02 +08:00
    @ChrisFreeMan 怪不得,之前初学 python ,在 vscode 安装了 Python 插件,结果多了一个叫啥 jupyter 的东西,搞得我完全不会了。
    ChrisFreeMan
        23
    ChrisFreeMan  
       2022-10-02 20:23:46 +08:00
    @PrinceofInj 一开始给用户塞太多东西是很容易困惑,好在 VSCode 尽量做到了自动化,傻瓜式的配置,起码能马上用起来。
    XIVN1987
        24
    XIVN1987  
       2022-10-03 09:54:01 +08:00
    @jfcherng

    感谢推荐,,试了下,,LSP-pyright 好强大,,速度快、补全准确,,比我现在用的 SublimeJEDI 强大 100 倍,,sublime 下终于有能用的 python 补全了。。
    jeeyong
        25
    jeeyong  
    OP
       2022-10-03 23:45:02 +08:00
    @XIVN1987 是吧是吧...我老开心了..哈哈哈哈
    牛逼牛逼..
    milkpuff
        26
    milkpuff  
       2022-10-04 13:00:14 +08:00
    @jfcherng 头像眼熟,一看是 github sublimelsp/LSP-pyright 的第一贡献者。

    anaconda 的 github 上也推荐使用 lsp ,我也从 anaconda 切到了 lsp 。
    brucmao
        27
    brucmao  
       2022-10-06 11:43:22 +08:00
    @jeeyong 能发下你的 lsp-pyright 配置吗,我同时用了 LSP-py-lsp 和 LSP-pyright ,会报错
    https://s3.bmp.ovh/imgs/2022/10/06/60a2bc3d47751d21.png
    jeeyong
        28
    jeeyong  
    OP
       2022-10-06 20:31:52 +08:00
    @brucmao 我目前 0 配置...你这个不是配置的问题吧..
    是默认配置解析错误?
    考虑重装一下?
    我装 pylsp 会有这个问题, 但是看起来并不影响使用..
    brucmao
        29
    brucmao  
       2022-10-06 22:28:09 +08:00
    @jeeyong 确实不影响使用,我现在同时用 lsp-pylsp 和 lsp-pyright ,设置如下
    ```
    {
    "pylsp.plugins.mypy-ls.enabled": true,
    "pylsp.plugins.flake8.enabled": true,
    // "pylsp.plugins.black.enabled":true,
    "pylsp.configurationSources": ["flake8"],
    "pylsp.plugins.pyls_black.enabled": true,
    "disabled_capabilities": {
    "completionProvider": true,
    "definitionProvider": true,
    "documentHighlightProvider": true,
    "documentSymbolProvider": true,
    "hoverProvider": true,
    "referencesProvider": true,
    "renameProvider": true,
    "signatureHelpProvider": true,
    },
    "settings": {
    "pylsp.plugins.jedi_completion.enabled": false,
    "pylsp.plugins.jedi_definition.enabled": false,
    "pylsp.plugins.jedi_hover.enabled": false,
    "pylsp.plugins.jedi_references.enabled": false,
    "pylsp.plugins.jedi_signature_help.enabled": false,
    "pylsp.plugins.jedi_symbols.enabled": false,
    },
    }

    ```

    https://github.com/sublimelsp/LSP-pylsp#running-alongside-lsp-pyright
    jfcherng
        30
    jfcherng  
       2022-10-07 09:03:38 +08:00   ❤️ 1
    @brucmao #29 LSP-pyright 依賴於 builtin python syntax, 必須保證 builtin python syntax 沒有被 disable
    brucmao
        31
    brucmao  
       2022-10-07 12:55:43 +08:00
    @jfcherng 找到原因了,我以前安装了[MagicPython]( https://github.com/MagicStack/MagicPython),把内置的 python 给禁用了
    iMath
        32
    iMath  
       2022-12-17 18:29:28 +08:00
    能分享一下你们的 lsp-pyright 配置吗?小白无从下手
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5867 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 02:06 · PVG 10:06 · LAX 18:06 · JFK 21:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.