在 VSCode 写 Python 的疑问 - V2EX
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
kevindu
V2EX    Python

在 VSCode 写 Python 的疑问

  •  
  •   kevindu 2017-12-17 16:12:48 +08:00 19592 次点击
    这是一个创建于 2857 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近有个这样的疑问,就是在函数下面写函数文档的时候,PyCharm 就会自动生成模版文档,比如这样

    """ :param date: :return: """ 

    但是在 VSCode 中没法这么智能,请问有没有相关的插件,或者大家能不能推荐下 VSCode 下 Python 开发常用好用的插件:-)

    45 条回复    2018-07-08 15:37:09 +08:00
    Kilerd
        1
    Kilerd  
       2017-12-17 16:54:11 +08:00
    我觉得 vs code 写 Python 超级鸡肋。
    对 Pyenv 支持超级不好。
    还是用 PyCharm 吧。
    YuHosi
        2
    YuHosi  
       2017-12-17 17:09:23 +08:00 via iPhone
    我只知道文件头部注释的插件哈哈哈
    LokiSharp
        3
    LokiSharp  
       2017-12-17 17:38:21 +08:00   11
    不要用 VSCode,不要相信前端程序员吹的工具。
    secsilm     4
    secsilm  
       2017-12-17 19:06:17 +08:00 via Android   2
    怎么三个评论都是反对意见的,我不服!我都是 notebook+vscode,pycharm 太臃肿
    MikeFeng
        5
    MikeFeng  
       2017-12-17 21:01:16 +08:00
    之前用了一段时间 vscode 写 Django,后面换了 pycharm 回不去了,提示很强大
    linuap
        6
    linuap  
       2017-12-17 21:20:12 +08:00
    非回答问题。

    vsc 和 pycharm 都用过一段时间

    最后选择了 emacs :D
    lguan
        7
    lguan  
       2017-12-17 21:24:46 +08:00   1
    @kevindu
    https://github.com/NilsJPWerner/autoDocstring

    总的来说 vs code 对 python 的支持感觉比 sublimetext 还是要好点,也支持断点调试等,楼上有人说不支持 pyenv 支持不太好的情况也不存在,至少我用 mini conda 是没问题的
    jerryshao
        8
    jerryshao  
       2017-12-17 21:46:03 +08:00   1
    hardman
        9
    hardman  
       2017-12-17 22:34:24 +08:00
    我建议试用 VIM
    Kilerd
        10
    Kilerd  
       2017-12-18 00:43:41 +08:00
    @lguan 如果你是同时写多个项目,一个项目一个独立的 python 环境,你就知道 vscode 多难用了。
    lguan
        11
    lguan  
       2017-12-18 00:50:48 +08:00   2
    @Kilerd 我就是写多个项目啊,通过`python.pythonPath`设置即可,这个设置可以放在文件夹级别,也可以放在 workspace 级别,完全没问题
    df4VW
        12
    df4VW  
       2017-12-18 00:52:30 +08:00
    @lguan 同意。。我感觉楼上的几位都没仔细用过 vscode-python,至少没读过文档
    sunwei0325
        13
    sunwei0325  
       2017-12-18 01:02:10 +08:00
    各种 ide 存在就是合理的,自己用不惯不代表别人用不惯。
    congeec
        14
    congeec  
       2017-12-18 01:02:51 +08:00 via iPhone
    如果你用 python3+ type hints, 俩 ide 都没问题。我还是建议用 pycharm,vscode 写 python 性能还是不如 pycharm,而且 pycharm 会对代码做静态分析,你要是坚持用 tyoe annotation, 它能帮你检查出一些类型错误。vscode 调用 mypy 啥的,真的很慢
    congeec
        15
    congeec  
       2017-12-18 01:03:19 +08:00 via iPhone
    Vim 大法好!
    lguan
        16
    lguan  
       2017-12-18 01:15:34 +08:00
    @df4VW 的确是,vscode 专门针对 python 开发有个页面的说明,我仔细读了以后,就代替 sublimetext 来用了,的确该有的都有了
    20015jjw
        17
    20015jjw  
       2017-12-18 03:40:40 +08:00 via Android
    反正我用 vim
    casouri
        18
    casouri  
       2017-12-18 08:23:21 +08:00
    学学 vim 然后用 spacemacs 吧,了就回不去了
    hxhc
        19
    hxhc  
       2017-12-18 08:51:31 +08:00 via Android
    Python docstring 可以试试
    cls1991
        20
    cls1991  
       2017-12-18 09:54:05 +08:00
    建议直接 PyCharm 吧, 省事
    zhuangzhuang1988
        21
    zhuangzhuang1988  
       2017-12-18 10:02:59 +08:00
    那就用 pycharm 呗
    vscode 只是对前端友好
    Meli55a
        22
    Meli55a  
       2017-12-18 10:51:16 +08:00
    除了 @jerryshao @lguan 说的在点子上,其余全 JB 跑题
    xiaoxinxiaobai
        23
    xiaoxinxiaobai  
       2017-12-18 10:59:46 +08:00 via Android
    @Kilerd 怕是不会用吧。。。
    cszhiyue
        24
    cszhiyue  
       2017-12-18 11:23:35 +08:00   1
    @Kilerd #10 #10
    @Kilerd #1 #1 对 pyenv 挺友好的啊。
    "python.pythonPath": "/usr/local/opt/pyenv/shims/python"
    在设置中这样设置,然后用 pyenv local project_directory xxx
    无痛切换
    cszhiyue
        25
    cszhiyue  
       2017-12-18 11:37:45 +08:00
    @cszhiyue #24 补充 在 user settings 中加上 python.pythonPath 的设置
    cszhiyue
        26
    cszhiyue  
       2017-12-18 11:41:50 +08:00
    @cszhiyue #24 说错了。。应该是在项目目录下 pyenv local xxx
    daya
        27
    daya  
       2017-12-18 11:57:06 +08:00
    不好用,我在 C 文件里 import 了 B,B 里面 import 了 A,用 vscode 在 C 文件里使用 A 里面的类,语法检测就会报错说这个类不存在。
    MemoryCorner
        28
    MemoryCorner  
       2017-12-18 12:12:47 +08:00
    不会用不习惯,要么老老实实回去用 PyCharm,要么自己动手写插件,有啥好抱怨的
    matsuz
        29
    matsuz  
       2017-12-18 13:14:42 +08:00 via iPhone
    这样做看似很智能,但其实限制了程序员只能用这一种风格的 doc string,至少给使用其他风格的人带来了不便。而这不符合 vscode 通用编辑器的定位。

    建议你自己手写 doc string,或者找个相关插件。

    另外我使用 vscode 的过程中没感觉写 python 有任何不便。如 @df4VW 所说,建议大家读一读 vscode python 插件的文档
    quinoa42
        30
    quinoa42  
       2017-12-18 13:24:32 +08:00
    题外话,vim 用 deoplete+jedi 大多数时候很正常,但有些 package (比如 beautifulsoup)会不能正常补全(基本上只有 constructor 能补全),有人遇到过吗?
    matsuz
        31
    matsuz  
       2017-12-18 13:28:59 +08:00 via iPhone   1
    @quinoa42 是这样的,这是 jedi 的问题。

    vscode 等一大票编辑器的智能提示都是基于 jedi,所以也有这个问题。

    要解决这个只能上 PyCharm,它是自己实现的智能提示。效果比 jedi 确实好一些。
    kevindu
        32
    kevindu  
    OP
       2017-12-18 14:08:37 +08:00
    关于这个问题,我用了 @lguan 说的 https://github.com/NilsJPWerner/autoDocstring 挺好用的,谢谢!

    但是还有一个问题是,我在本地新建立了一个分支 git checkout -b,为什么直接就推送到了远程,是下面这两个配置的原因吗?我是不是应该将第一个改为 false,第二个改为 local?

    // 是否启用自动刷新
    "git.autorefresh": true,

    // 控制运行“签出到...”命令时列出的分支的类型。"all" 显示所有 refs,"local" 只显示本地分支,"tags" 只显示标记,"remote" 只显示远程分支。
    "git.checkoutType": "all",
    kevindu
        33
    kevindu  
    OP
       2017-12-18 14:09:47 +08:00
    @Meli55a 哈哈哈哈哈,感谢 @lguan
    matsuz
        34
    matsuz  
       2017-12-18 14:16:13 +08:00
    @kevindu 应该不是这两个设置的问题

    git.autorefresh=true
    git.checkoutType=all

    这两个都是默认设置
    ivechan
        35
    ivechan  
       2017-12-18 15:08:45 +08:00
    vscode 的 vim 插件做的很不错。。
    wanglaihuai
        36
    wanglaihuai  
       2017-12-18 16:47:58 +08:00
    初学者用 VScode 路过,作为新手来说我觉得 VS 做的比 PyCharm 更人性化一点吧。感觉 PyCharm 做大项目才会用到
    lrannn
        37
    lrannn  
       2017-12-18 17:47:51 +08:00
    用 VS Code 写 C++和 Python,感觉超级难用...或许是我太菜了吧
    xpresslink
        38
    xpresslink  
       2017-12-18 18:03:47 +08:00
    VS Code 是个免费的通用的文本编辑器,你不能期望太高了。
    放着 Pycharm 那么好用的 IDE 你不用非要用 VS Code,Sublime Text 之类受虐。
    当然了,如果你只是偶尔写个小脚本当我没有说。
    hymxm
        39
    hymxm  
       2017-12-18 20:57:57 +08:00
    哪个用着爽就用哪个
    lguan
        40
    lguan  
       2017-12-18 21:54:08 +08:00
    @xpresslink PyCharm 非常好,事实上,Idea 家的 Idea 都是非常不错的,但用 vscode 和 st 也绝不是受虐,相反,ide,编辑器,个人喜好而已,比如对我个人来说,我不能忍受 IDE 的慢,那就偏向编辑器了,vscode 对 python 的支持对我写代码来说已经足够用了,也就没问题了,还有不少人还以用 vim 为荣呢,用什么都不重要,能写出好代码的,都是好码农
    xpresslink
        41
    xpresslink  
       2017-12-19 10:12:53 +08:00
    @lguan 通常 I5 8G SSD 用 Pycharm 是非常流畅的。用机械硬盘启动时间确实有点长。
    你要是同时维护很多个不同环境的 Py 项目你就知道为什么了。
    文本编辑器再怎么配置也达不到专业 IDE 的三之一水平,项目管理,版本控制,重构,代码分析,远程调试之类差得太多。当然了大多数人可能用不到这些特性。
    lguan
        42
    lguan  
       2017-12-19 15:51:34 +08:00
    @xpresslink 为啥你们一直觉得我没不是维护不同环境的 python 项目呢...我不但维护不同环境的 python 项目,还同时维护数个 ruby 的项目,数个安卓项目,甚至数个 iOS 项目,你说的对,文本编辑器从专业性上是肯定比不上 IDE 的,否则 IDE 就没有存在的必要了,我只能说,各有千秋,看每个人自己的取舍了
    1oNflow
        43
    1oNflow  
       2018-04-13 16:03:03 +08:00
    @lguan 你好,用了你提到的插件,感觉挺好用的,但是有个疑问

    """[summary]

    Arguments:
    a {[type]} -- [description]
    b {[type]} -- [description]
    """
    自动生成以上注释后,光标停在 summary 那里,而且直接输入会替换掉 summary,我看到作者的说明 gif 里他写完 summary 直接就跳到了下面的{[type]}那里,但是我按了回车和 tab 等快捷键,还是在编辑 summary,所以想问下哪个按键可以直接跳到下一个高亮的可编辑部分啊?
    wuyazi
        44
    wuyazi  
       2018-07-08 15:34:56 +08:00 via iPhone
    vscode 支持 pipenv 和 git submodule
    pyCharm 连 git submodule 都不支持
    wuyazi
        45
    wuyazi  
       2018-07-08 15:37:09 +08:00 via iPhone
    强大个屁
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5517 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 07:23 PVG 15:23 LAX 00:23 JFK 03:23
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86