pyenvかvenvかー Pythonの仮想環境を再考する
昨日、Python Boot Camp大阪が開催されたので参加してきました。
https://pyconjp.connpass.com/event/52480/
都心ではよくあるみたいだけど、Pythonの勉強会は大阪ではあまりないみたい。講師の方が広島や栃木ではやったことあるって言ってたので、Python盛り上がってる証拠かも?
僕はこういう勉強会的なのは経験があまりないので、ちょっとドキドキ。場所は本町の駅近くで良い感じでした。
勉強会の内容はBoot Camp用のテキストがあってこれに沿って進んでいく感じです。
Pythonの基礎的な話でしたが、知らないこともあって勉強になりました。
講師はいっぱいいたし、みなさん親切でPython全く触ったことないよーって人でも気軽に参加できる素晴らしい勉強会だったように思います。講師、運営の皆様ありがとうございました。
Pythonの仮想環境
で、本題なのですが勉強会でPythonの仮想環境の話になりました。このへんですね。
http://bootcamp-text.readthedocs.io/textbook/6_pyvenv.html
講師の方は仮想環境にvenvを勧めていて、pyenvはあまりオススメできないという話でした。
理由はpyenvはサードパーティー製のパッケージだし、何も考えずにpyenvを使うのはどうだろうってことのようだったかと。(あまり覚えてない)
正直講義の途中で衝撃受けました。pyenvあまり好かれてないんだ。。。笑
自分はpyenv使ってるんですよね。昔ブログに書いてました。
Pythonで仮想環境を構築すべき理由
Pythonの開発環境を整える①
Pythonの開発環境を整える②
これ、ちょうど1年前ぐらいで、Pythonの勉強を始めた当初なんですよね懐かしい。
読み返すと面白いです。やっぱアウトプット重要。
今では仕事でPythonを使うようにもなって、この記事書きながら、Pythonに対する感謝の気持ちが溢れてきました。
話それた。自分がなぜpyenvを使うようになったか?
それはAnacondaを使いたかったからなんですね。
なぜAnacondaを使いたかったか?
それはPythonの勉強を始めたのが、Udemyの「実践 Python データサイエンス」がきっかけだったからです。
この講座でPythonを知り、numpyやpandas、データ分析の基礎を知り、Jupyter Notebookの便利さを知りました。
僕はプログラミングの全くの初心者でしたが、動画を観ながら真似していくだけでPythonの魅力が伝わりますし、なによりそれほど難しくない。当時は仕事も違ったし、スマホで視聴できるのも大きかったように思います。
この講義の中で、インストールの説明なども省くためにも一括でパッケージ管理できるAnacondaが勧められていて、その流れで僕もAnacondaを使い続けてました。
つまり、現在もpyenv + Anacondaを使う理由は特にないわけです。
なにもわからずAnacondaを使っていたころよりは成長できているのかなー。
前置きが長くなりましたが、改めて自分に適したPython開発環境を考えてみよう!っていうのが本記事の主旨です。
スポンサーリンク
現在の仮想環境
Homebrewでpyenvをインストールして、pyenvでAnaconda、Miniconda、pythonの2系、3系を複数バージョンをインストールしています。
やりたいことに応じてpyenv localで切り替える感じです。
pyenvを使うメリットは、pythonの複数バージョンをインストールできる点だと理解しています。
しかし、このメリットである切り替え、実はあんまり使わないんですよね。
python2系を使うことはないし、これから使うことはもっとなさそう。
ならpyenvを使い続ける理由は無い?
講義で話されてたサードパーティー製のパッケージで公式では無いという言葉が耳から離れない。。。
venvは仕事でも使っていて不自由は特にないです。うーん。
pyenvかvenvかみたいな話はネット上でも論争が結構あって、興味深いです。
Docker imageを使うという人もいて、なるほどそれもありだなーと思いました。
結局どうするの?
venv使います。
こちらの記事が決定的でした。
Pythonの仮想環境構築 2017.01版
特にこのコメント。
デファクトスタンダードを使って、それをみんなでよくしていこう、というPythonのエコシステムに乗っかるほうがいろいろと便利ですよ。
venv使って不自由になることもなさそうだし、しばらくvenvで様子見ます。
このコマンドでenvという名前の仮想環境が作れます。簡単ね。
$ python3 -m venv env
アクティベートも簡単。
$ source env/bin/activate
pyenvのアンインストール
しましょう。
この記事の通りでいけます。
pyenv自体のアンインストール方法
手順だけ記しておきます。
Homebrewでアンインストール。
$ brew uninstall --force pyenv
$ brew uninstall --force pyenv-virtualenv
.pyenvの削除。私はホームディレクトリにありました。
$ rm -rf .pyenv/
pyenv関連の記述を削除。
$ vim ~/.bash_profile
bashの更新。
$ source ~/.bash_profile
これでpyenvのアンインストール完了です。
まとめ
とりあえずPythonのエコシステムに乗っかる方針でいきます。
こういうことも勉強会に参加したから気づけたわけで、インプットとアウトプットは大事だと再認識。
これ毎回思うんだけどなかなか継続するって難しいですよね。
そんな初春の日曜日の午後。