Pythonで開発する際のおすすめ環境セットアップ

こんにちは、がじゅまるです!

都内のIT企業でエンジニアとして働いています。

Python歴は2年くらいな「がじゅまる」が

Pythonでの開発をする際のおすすめの開発環境を紹介します。

Pythonの環境は人によって好みが大きく分かれると思いますがあくまで一例として見ていただければと思います。

TL;DR

結論から言いますとvenv + poetryを使い、IDEはPyCharmを使います。

venvについて

venvとはPython公式が提供する仮想環境マネージャーです。

利点としてはPythonインタプリタとパッケージの組み合わせを好きなだけ作り、レポジトリごとに分離することができる点です。

毎回activateする手間はありますが、aliasを作っておけばさほど手間ではありません。 また、後ほど説明するPyCharmでは、そのプロジェクトを開けば、PyCharmのterminalでは自動でvenvをactivateしてくれます。

$ cd (開発するレポジトリ)
$ python3 -m venv .venv
$ source ./.venv/bin/activate

python3の -m venv {任意の名前} なので自分の使いたいようにセットできます。 レポジトリごとにその名前にするのはactivateする際に面倒なので統一してaliasを作っておくことをおすすめします。

poetryの紹介

poetryはpyproject.tomlベースでプロジェクト管理をしてくれるツールです python-poetry.org

pyproject.tomlがあることでsetup.pyを書かなくてもよくなります。

ツールごとに名前空間 tool.${toolname} を作って独自設定を記述することが出来きます。

パッケージ依存関係をよしなにやってくれます。よしなにやってくれる代わりにインストールに時間がかかります。

CIとかでpackageインストールする場合はpoetryのpyproject.tomlからrequirement.txtを吐き出してくれるコマンドがあるので それを使ってpip installすると高速化できます。

(poetryからvenvと同じ様なことはできるのですが、設定によってはバグったりするのでvenvを紹介してます)

PyCharmの紹介

今までsublime text, atom, vscode, vimなどのエディタを使ってきましたが、 PyCharm最強だなという結論に至りました。

PyCharm www.jetbrains.com

何を隠そうPyCharmを使い始めてから、Python開発がより楽しくなりました!

PyCharmのどこがいいの?

強力なlint checkと補完機能

Pythonは動的型付き言語ですが、type-hintingを使えば、静的型付き言語のような強力な補完機能がかなり役立ちます。

type hintingを使えば、importしたpackageに生えているclassやmethodが補完候補としてみれます。

さらには、methodの引数まで表示してくれるので、どんな引数があったかを忘れても調べる必要がありません。

定義元へのjumpが優秀

vscodeとかでもメソッドの定義元へのジャンプの機能はありますが、それよりも優秀です。

packageの中まで飛んでくれるので、補完で良さそうなメソッドを見つけて楽に挙動を確認できたりします。

便利なTODO一覧機能

ソースに書いたTODOコメントの一覧化できる機能です。地味に便利です。TODOの他にもFIXMEも拾ってくれます。

f:id:gajumaru_eng:20201116232628p:plain
TODO機能

他には、githubのconflict解消がわかりやすくできたり、リファクタリング機能も優秀だったり、 他にもまだまだ便利な機能やPluginがたくさんあるので調べてみてください。

まだ使ったことないって方は騙されたと思って一度使って見てください!

まとめ

venv + poetry + PyCharmで楽しくPython開発しましょう!