病みつきエンジニアブログ

機械学習、Python、Scala、JavaScript、などなど

Python の開発に VSCode を使ってみた雑感

普段 Python 書くときに使ってるエディター

  • PyCharm (Vim Emulator を入れてる)
  • たまに Vim

PyCharm の気に入っているところ

  • 型推論がすごく良い。動的型付けな言語にとって、これはかなり良いメリット
  • Vim の Emulator が結構良い

PyCharm の不満

  • Vim の Emulator が入っているとはいえ、Vim じゃない
    • 例えばマクロがない
  • 普段 Docker、 docker-compose を使っているが、Docker内のデバッグ(リモートデバッグ)は有償版でしかできない
    • 体験版使ったときは、動きすらしなかった。同僚によると今は大丈夫らしい
    • 会社の予算で買ってもいいんだけど、ホスト(mac) で Python 動かせばいいので買うほどじゃない
  • direnv、flake8、mypy などのツール・ライブラリに対するサポートがない

VS Code の雑感

  • リモートデバッグ使える、すごい
  • 挙動がさくさく動く。Atomより気に入った
  • flake8、autopep8、mypy など外部ツールを最初から想定しているのが良い
  • direnvもエクステンションで行けた
  • 内部で ctags を使っているらしく、ctags 入れないといけないのにハマった(ドキュメントに書いてあった)

VS Code の不満点

  • 型推論が弱そう
    • 大きいプロジェクトだと、mypy のサポートもあんまり上手くいかない。設定が悪く import がうまくいってないのかもしれない。。。
  • PyCharm にある

VS Code のリモートデバッグ

  • 問題なく動いて感動
    • 自分は Docker 内でしか試してないが、恐らくリモート環境にあるサーバーでも動くだろう
  • 最初はセットアップがちょっと面倒くさい
    • ptvsd を Docker 内でインストールしないといけない
    • docker-compose の commandpip install ptvsd && python hoge.py した

VS Code の Vim Emulator

  • マクロが動く!すごい!
  • キーバインドが設定できないものがある。例えば、 vi( みたいにビジュアルモードに関係するやつが設定できなかった
  • .vimrc は読めないので個別の設定が必要
  • 一部の Vim プラグインにネイティブで対応してるっぽいのがすごい

総評

  • PyCharm に比べて、 外部ツールに対応しているのがすごく良かった
  • リモートデバッグできるのも良い
  • けど、型推論系が弱いのと、自動の import がなくてつらいのを解消したい

こうして人は拡張機能を作るのか。。。