Help us understand the problem. What is going on with this article?

VSCodeをPyCharmにする。

はじめに

ぼく「Pythonistaのみんなは当然、日々の開発にエクセレントなIDEであるPyCharmを器用に使いこなして爆速開発しとるやん?」

ぼく「かくいうワイもPythonistaの端くれとしてPyCharm沼にハマって早半年以上経ったで。」

ぼく「でもな、ここ最近。」

ぼく「みんなどうやらPyCharmのインテリジェンスっぷりをよく理解していないんか、無料だからーとVSCodeとかいうツールを使っとるしているで!!!」

ぼく「これはけしからん!!!!!我らがPyCharmはこんなにすごいんだぞ!!!!!と威張ってやろうと思っていたんですが調べてれば調べるほど…」

ぼく「あれ?プラグイン組み合わせたらVSCodeで十分じゃね…?しかもめっちゃ軽い…無料でいいのこれ…と、感じる日々…」

こうして、僕のVSCode→PyCharm化計画が始まった…

目次

※大層なタイトルですが、この記事はただのプラグイン紹介記事です。

VSCodeに求める機能

まだまだPyCharm歴半年とちょっとくらいなので皆さんとは意見が分かれるかもしれないけど、IDEに求めている機能は以下の通りかなって思います。(今後増える可能性あり)

  • シンタックスハイライト
  • lint・format
  • インタープリタの選択(仮想環境)
  • ファイル名及びコードの検索・置換
  • コード補完
  • 静的型解析
  • リモートデバッグ
  • リファクタリング
  • テスト
  • Docstringへの対応
  • Github連携(diff・プルリク・プル・コミット・プッシュ・マージくらいできればとりあえず良い)
  • DBへの接続(テーブルのエクセル風表示/修正・カラムやテーブルの追加/修正・csvのインポート/ダンプ)
  • 実行・デバッグ構成の編集
  • Djangoの開発環境
  • Docker
  • ついでにフロントエンド側のシンタックスハイライト・コード補完・リント・フォーマットなど
  • さらについでにmarkdownとcsvの快適な編集環境

くらいが動作できれば十分かなと思っています。

つまりVSCodeでこれが出来ればPyCharmはいらない子…

ということで上記の条件を満たすのに必要そうなプラグインをひとまず調べてみました!

詳細は別記事で…

必要そうなプラグイン

Python開発に必要なプラグイン

  • ms-python.python:IntelliSense、リンティング、デバッグ、コードナビゲーション、コードのフォーマット、リファクタリングなどの機能を含む、Pythonに必要な機能を一通り揃えたツール
  • magicstack.MagicPython:型注釈、f文字列、正規表現を含むすべてのPython3構文機能をハイライトしてくれるツール
  • njpwerner.autodocstring:docstringのスニペット生成ツール
  • brainfit.vscode-importmagic:Pythonの自動インポートを行ってくれるツール
  • ms-pyright.pyright:きめ細かく設定できる高速な型チェッカー

Djangoの開発に必要なプラグイン

フロントエンドの開発に必要なプラグイン

エディター全般に必要なツール

マークダウンに必要なプラグイン

  • yzane.markdown-pdf:マークダウンとPDFで出力するツール
  • yzhang.markdown-all-in-one:マークダウンのショートカット・自動プレビュー・補完など、一通りの機能を備えたツール
  • jebbs.markdown-extended:エクセルやスプレッドシートのテーブルを貼り付けられるようにするツール

AlanWalk.markdown-toc:マークダウンから見出しを作成する
→上のmarkdown-all-in-oneでできました!

gitを利用するのに必要なプラグイン

データベースを利用するのに必要なプラグイン

ckolkman.vscode-postgres:PostgreSQL用のクエリツール
→sqltoolsの方が便利そうなので削除しました!
- mtxr.sqltools:複数の種類のDBに接続できるツール

PyCharmになるためのプラグイン

その他便利なプラグイン

この中から、Pythonでの開発に間違いなく必須である公式のPython拡張機能をちょろっと紹介します!

python

まずはPythonをインストールしましょう!

VSCodeのPyCharm化はこれでほぼ解決します!!!!!!

具体的には

  • シンタックスハイライト
  • lint・format
  • インタープリタの選択(仮想環境)
  • ファイル名及びコードの検索・置換
  • コード補完
  • 静的型解析
  • リモートデバッグ
  • リファクタリング
  • テスト

が出来るようになります!

公式すげぇ!!

インストールが終わったら、lintとformat、インタープリタの設定のみ取り扱います。

lintとformat

とりあえずすぐ利用するためにflake8autopep8をインストールしておきましょう!

$pip install flake8
$pip install autopep8

次にControl + command + pでコマンドパレットを開く→open settings(JSON)で検索しsettings.jsonを開きます。

以下の項目を追記・修正してください。

settings.json
{
    ...
    "editor.tabSize": 4,
    "editor.formatOnType": true,
    "editor.formatOnPaste": true,
    "editor.formatOnSave": true,

    "files.autoSave": "afterDelay",
    "files.autoSaveDelay": 1000,
    "python.linting.lintOnSave": true,
    "python.linting.pylintEnabled": false,
    "python.linting.pep8Enabled": false,
    "python.linting.flake8Enabled": true,
    "python.linting.flake8Args": [
        "--ignore=W293, W504",
        "--max-line-length=150",
        "--max-complexity=20"
    ],
    "python.formatting.provider": "autopep8",
    "python.formatting.autopep8Args": [
        "--aggressive", "--aggressive",
    ],
}

これでlintとformatterの設定終了です。

インタープリタの設定

pipenvで仮想環境を作成することを前提にします。pipenvに関する記事はネットにたくさん転がっているので、何かエラーが発生した場合はそれらの素晴らしい記事を参考にしてください。

まずpipenvをインストールしていきましょう。

$pip install pipenv

その後、以下のコマンドで仮想環境の作成・適用を行います。

$pipenv install
$pipenv shell

こうすることで/home/<ユーザー名>/.local/share/virtualenvs/<ディレクトリ名>-<ハッシュ値>/のようなディレクトリが生成されているのが確認できると思います。

次に、Control + command + popen settings(UI)を開き、設定の検索にpython.pythonpathと入力してください。

出てきた項目に/home/<ユーザー名>/.local/share/virtualenvs/<ディレクトリ名>-<ハッシュ値>/bin/pythonを入れてpythonのバイナリファイルへのパスを格納します。

再度Control + command + pからインタープリタと検索すると設定項目が出てきますが、追加したインタープリタが選べるようになっているはずです。

終わりに

紹介したプラグインを入れて上記の設定をするだけで、ひとまずVSCodeでのチーム開発はある程度できるようになると思います!

紹介したいプラグインはたくさんあるのですが、執筆能力が追いつかないのでこのくらいにしておきます!
(特にPyCharmからなんらかの事情でVSCodeに移行する人にとってはintellij-idea-keybindingsはとんでもないプラグインだと思うのでぜひ使っていただきたい)

ちなみに!ここまで書いておいてなんですが、VSCodeは無料で利用でき、多種多様なプラグインで自由に環境を構築できるのが素晴らしいです。

が、あくまでPythonでの開発という点に的を絞った場合、PyCharmは紹介したほぼ全てデフォルトで利用でき、変更したい場合でもGUIから簡単にいじれます。

デメリットとして

  • マークダウンの編集が弱い
  • メモリめっちゃ食うのでスペックによってはPC全体の動作が遅くなる

などが挙げられますが、その分

  • リアルタイム構文チェック
  • DBとの強力な連携機能
  • プロジェクト全体検索
  • 変数名変更などのリファクタリング
  • 使いやすいリモートデバッグ

の他にも、痒いところに手がととぐ使いやすさがあります。

ことPythonにおける開発において、すでにPyCharmを利用中の方がわざわざVSCodeに移行する意味はあまりないのかなと思いました!

お し ま い

5/10:VSCode に必ず入れておきたい拡張機能を拝見して、神プラグインたくさんあったのでいろいろ追加させてもらいました。

nokonoko_1203
経歴:建設コンサルタント→在職中にPythonを勉強→WebGISエンジニア
MIERUNE
位置情報に関する様々な技術情報やTipsをMIERUNEのメンバーがお届けします。位置や可視化に関するご相談がございましたらぜひご連絡ください!
https://mierune.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした