読者です 読者をやめる 読者になる 読者になる

Python3.3のpyvenvコマンド(venvモジュール)の仮想環境生成時にdistributeとpipもセットアップする

もうHerokuでもPython 3.3がサポートされているみたいなのでPython書く環境を3系にあげました(趣味Pyなので2系サポートのことはすっかり忘れられて気楽です)。

またPython3.3からはvenvというvirtualenvと似た機能がビルトインされている様なので、そちらを使って環境を作ります。本体はvenvというモジュールですが、コマンドライン用にpyvenvというコマンドが用意されています。venvはデフォルトでdistributeもpipも入らないので、自前で入れる必要があって若干面倒です。まぁ公式モジュールなので仕方ないかもしれません。

いまさらPython 3 | taichino.com

当初の思惑通り開発が進んでいれば、Python 3.3.0ではpysetup+pyvenvが入り、いままでpip+virtualenvでできていたようなことができるはずだったのですが、pysetupの取り込みに失敗したため片手落ちの状態になっている印象を受けます。

Python3.3のvenvを試す - YAMAGUCHI::weblog

このへんの話。

なんかいい方法なのかなと公式ドキュメント読んでたらvenv.EnvBuilderのAPI使った拡張スクリプトへのリンクが貼ってあった。

curl -LO https://gist.github.com/vsajip/4673395/raw/4a605806c9ad109ff51e4867af06685629167234/pyvenvex.py
python pyvenvex.py venv
tree -L 1  venv/bin/
    venv/bin/
    ├── activate
    ├── activate.csh
    ├── activate.fish
    ├── activate_this.py
    ├── easy_install
    ├── easy_install-3.3
    ├── pip
    ├── pip-3.3
    ├── python
    ├── python3 -> python
    └── python3.3 -> python

というかvirtualenv自身が3.3をサポートしてるから、まだvirtualenv使えばいいだけかーというのを今思った。

http://www.virtualenv.org/en/latest/news.html

pysetupというのはなんだろと思ったけどこれのことみたい

http://docs.python.org/dev/install/pysetup.html

以下の資料が詳しかった

PYTHON PACKAGING (PyFes 2012.03 発表資料) - Google Drive