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:
以上!