Python3.3からvenvというのが入ってきてvirtualenvを置き換えられるという感じでしたが、日本語情報では色々不便という情報が多かったのでなんとなく敬遠していました。しかし、Python3.4からensurepipという便利なものがvenvで使えるようになって、煩わしさがなくなっているようなので使ってみました。
※Python3.4以上を対象にしています。
pyenv
使っているOSのパッケージマネージャでは新しいPythonはすぐにインストール出来ないので、Pythonのバージョンマネージャが必要です。
そこでpyenvです。
インストールはREADMEにまとまっていますのでそちらを参考にするといいです。
インストール可能なPythonの一覧を確認して、3.5と3.4をインストールしてみます。
$ pyenv install -l
$ pyenv install 3.5.0
$ pyenv install 3.4.3
インストールしたPythonは"pyenv global"コマンドで使えます。
$ pyenv global 3.5.0
バージョンが変わらない問題
自分はMacOSXで起こりました。他のOSでも起こるかもしれません。
MaOSXの場合、brewでインストールしたPythonが優先されてしまうのが問題みたいです。
$ brew uninstall python
brewのpythonを消したくない場合はやむを得なくPATHを書き換える方法があります。(.bashrcや.zshrcに書く)
PATH=/Users/<USER>/.pyenv/shims:$PATH
大変暴力的なのでお勧めできませんが、これで共存できます。
venv
パッケージはグローバルにインストールするのではなくプロジェクトごとに独立してインストールして使いたいです、そういう場合にvenvを使います。
さっきglobalに設定した3.5.0を使ってやってみます。venvはPython3.3以降だとデフォルトで使用可能です。
venvはpyvenvコマンドから実行できます。プロジェクトを作成してvenvを初期化し有効化します。
$ mkdir venv_test
$ pyvenv venv_test
$ source venv_test/bin/activate
(venv_test) $
venvが有効化されると"([evn名]) "がシェルの先頭につきます。
この状態でpipもこの環境内のみで有効なpipなので必要なパッケージをインストールして開発を開始できます。
venvを無効化する場合は、
$ deactivate
するだけです。
まとめ
Python3.5が便利そうという情報を聞いて、Python3の環境構築をまとめてみました。
venvはデフォルト使えるのでインストールの手間などが無く便利だと思っています、言語標準になってくれて良さを感じます。
これでpython2+virtualenvを捨ててpython3+venvライフを送れそうです。
ensurepipの詳しいことなどは以下の参考記事を見ると良いかもしれません。
Show comments