やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Pythonのvenvで仮想環境を用意する

特定パッケージをインストールした環境として分離するために。

開発環境

  • Linux Mint 17.3 MATE 32bit
  • pyenv
    • Python 3.6.1
    • (system)
      • Python 3.4.3 (default, Nov 17 2016, 01:11:57) [GCC 4.8.4] on linux
      • Python 2.7.6 (default, Jun 22 2015, 18:00:18) [GCC 4.8.2] on linux2
      • pip3 1.5.4 from /usr/lib/python3/dist-packages (python 3.4)

前回まで

pyenvで異なるバージョンのPythonをインストールし切り替えることができるようになった。bash -lコマンド実行必須。

今回

パッケージにも仮想環境を用意したい。

参考

pyenvとvenvでPython3開発環境を整える

感謝。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。