特定パッケージをインストールした環境として分離するために。
開発環境
- Linux Mint 17.3 MATE 32bit
- pyenv
前回まで
pyenvで異なるバージョンのPythonをインストールし切り替えることができるようになった。bash -l
コマンド実行必須。
今回
パッケージにも仮想環境を用意したい。
参考
感謝。Pythonの仮想環境は色々と情報が飛び交っていてワケがわからない。歴史的な経緯を理解している必要があるのか。ツールをインストールするためのツールをインストールするための事前知識がないと動作するものがどれなのかさえわからない。最適な環境がどれなのかも判断できない。
- できるだけインストールしたくない
- できるだけ類似ツールは1つに集約したい
https://blog.dshimizu.jp/article/411
venvで仮想環境をつくってみる(失敗。pyenv + venv + python3.6.1)
pyenvでPython環境確認
$ bash -l $ pyenv --version pyenv 1.0.10 $ pyenv versions system * 3.6.1 (set by /home/mint/.pyenv/version)
python -m venv
$ mkdir pylangstudy_site_361
指定ディレクトリを仮想環境のrootとする。
$ python -m venv pylangstudy_site_361/
指定した仮想環境をアクティブにする。
$ source pylangstudy_site_361/bin/activate (pylangstudy_site_361) $
(仮想環境ディレクトリ名) ... $
が前につくようになると成功。この文脈下でpip
を使ってインストールすると、その仮想環境内にインストールされる。
pipも3.6になっている。
(pylangstudy_site_361) $ pip -V pip 9.0.1 from .../venv/pylangstudy_site_361/lib/python3.6/site-packages (python 3.6)
あとは任意のツールを入れるだけ。sudo
コマンドも不要。むしろつけたらエラーになった。
非推奨
Python3.6.1ではpyvenv
コマンドによる仮想環境の作成は非推奨となったらしい。3.6以前では推奨だったらしいが。3.6ではpython -m venv
を使う。
$ pyvenv pylangstudy_site/ WARNING: the pyenv script is deprecated in favour of `python3.6 -m venv`
所感
Pythonの学習以前に、環境構築がむずかしすぎる。調査に時間がかかりすぎるので、もう適当にやってみることにした。
仮想環境を構築しないと、依存関係でいずれ壊れるかも知れない。その環境を自ら管理せねばならない。そのうち「パッケージ管理ツール」でなく「仮想環境管理ツール」とか出てきたりして…。はやくコード書きたい。遠すぎるHelloWorld。