コンテンツにスキップ

Top

Python 開発環境構築

Python の開発はバージョン管理とパッケージ管理の問題があり大変。
しかも、これ!といった解決案はまだ出ていない。
現時点で自分が気に入っている開発環境構築手順を述べる。
ここではAnacondaについては述べない。Aancondaはこっち。
Anaconda 開発環境構築

pyenvやらvenvやらpipenvやらpoertyやら

Python を何も考えずに使う場合、一つのバージョンで、かつ、同じディレクトリでパッケージを管理することになる。

そうなると、複数のプロジェクトとかを扱いたい場合大変こまる。

プロジェクトごとに好きなPythonのバージョンで、かつ、好きなパッケージを自由にインストールしたい、といった場合、バージョン管理やパッケージ管理をしないといけなくなる。

その方法としてpyenvがあったりvirtualenvがあったりいろいろだったが、とりあえずpipenv一本に絞ることにした。

pyenvとは

pythonのバージョン管理に必要なツール。

pyenv がないと複数のPythonのバージョン(3.9とか3.8とか3.7とか)を切り替えるのが大変になる。

けど、pyenvは今はdeprecatedなのでなんか使うのに抵抗はある。

ので今回は使わない(といっても実はpipenvは内部でpyenvつかうので使ってるのだが)

venvとは

venvは簡単に仮想環境を作れるツール。

これでパッケージが汚染されなくなる。

Aという仮想環境、Bという仮想環境、それぞれでpipでインストール/アンインストールされるパッケージがきちんと分離されるのでパッケージを気にせず追加/更新/削除できる。

が、今回は使わない(といっても実はpipenv内部で使われるので使ってるのだが)

pipenvとは

pipenvはpyenvとvenvが合体したようなツール。

これを使えばPythonのバージョンもパッケージも管理することができる!

ので、これを採用する。

ただし、内部で使っているpyenvがそもそもdeprecatedなのでそのうち使えなくなるんじゃ?と不安ではある。

poetryとは

poetryは使ったことないから知らん。

pipenvの使い方

pipenvの使い方。

まずはディレクトリを作る。ディレクトリ名はなんでもいい。そのディレクトリ配下においてのみ、Pythonのバージョンなどが変わる仕組みとなっている。

$ mkdir python3.8_sample_project

で、作ったディレクトリ配下で以下を実行する。

pipenv --python (使いたいPythonのバージョン) 3.8だと、

$ cd python3.8_sample_project
$ pipenv --python 3.8

これで、ディレクトリにPipfileというのができる。

この状態で、

$ pipenv shell

と打ち込むと、仮想環境が実行される。

終了したい時は、

$ exit

なお、ディレクトリを移動してもこの環境は有効なので注意。
pyenv の local みたいにそのディレクトリ配下、とかそういうのはない。
なので複数のをやりたい場合はちゃんとexitしてやり直さないといけない。

ちなみに、

$ pipenv --python 3.6
Warning: Python 3.6 was not found on your system...
Neither 'pyenv' nor 'asdf' could be found to install Python.
You can specify specific versions of Python with:
のようなエラーが出た場合はpyenvが入っていないからで、pip installでpyenvを入れること。

以上!