Python をインストールしたあとの設定
Python 3 系を選択した理由は、Python 3.3 から virtualenv が標準で入っているそうだし、もう 3 系でもいいよねというか、「パーフェクト Python」が 3 系を対象に書かれているから 3 系にするという感じ。
easy_install とか setuptools とかそのあたりがよくわからないので YAMAGUCHI さんのエントリを読む。
- Pythonを取り巻く開発環境(PyCon JP 2012資料 #pyconjp) - YAMAGUCHI::weblog
- Mac で Python の開発環境構築(2013.11) - methaneのブログ
pyvenv を使えばいいのだよね。
$ python
とするとシステムに入っている Python (/usr/bin/python) が起動する。
$ python3.3
とすると MacPorts で入れた Python 3.3 (/opt/local/bin/python3.3) が起動する。
/opt/local/bin を見ると python3.3 の他にも Python 関連のコマンドが入っていてそのなかに pyvenv-3.3 というものもあった。
$ pyvenv-3.3 YOUR_ENV_NAME
とすると YOUR_ENV_NAME という名前の仮想環境が作成される。
$ mkdir ~/projects $ cd ~/projects $ pyvenv-3.3 py3
~/projects/ というディレクトリの中に py3 という仮想環境を用意した。
$ ls py3/bin activate pydoc python python3 python3.3
中に python, python3, python3.3 と 3 種類あったけれどどれも実行すると Python 3.3 だった。どういう違いがあるのかよくわからないけれど、まぁいいか。
methane さんのエントリを参考に PATH の設定をする
$ echo 'PATH=$HOME/projects/py3/bin:$PATH' >> ~/.bash_profile $ source ~/.bash_profile $ python -V Python 3.3.2
あれ、これは venv を activate しなくてもよいということなのかな。
$ which easy_install /usr/bin/easy_install
なんとなく調べてみたら easy_install はすでに入っていた。でもこれは Mac OS X 標準の Python のものだと思われるので触らないほうがよさそう。
MacPorts で調べてみたらそれらしきパッケージがあったので入れようとするもエラー。なんだろう。
$ sudo port install py33-distribute Password: ---> Fetching distfiles for py33-distribute ---> Verifying checksums for py33-distribute ---> Extracting py33-distribute ---> Configuring py33-distribute Error: py33-distribute is obsolete, please install py33-setuptools instead. Error: org.macports.configure for port py33-distribute returned: obsolete port Please see the log file for port py33-distribute for details: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_python_py-distribute/py33-distribute/main.log To report a bug, follow the instructions in the guide: http://guide.macports.org/#project.tickets Error: Processing of port py33-distribute failed
代わりに py33-setuptools を入れなさい、とのこと。
methane さんは ez_setup.py というものをダウンロードして実行しているようだ。いろいろあるみたいで少々混乱するぜ。
少し整理してみる。
- まず pip をインストールするために easy_install というコマンドが必要
- easy_install というコマンドをインストールするために setuptools か distribute というパッケージが必要(easy_install はパッケージではない)
- distribute の方が後発で安定しているらしい。
ふむふむ。
ブコメで「pip入れろ」みたいな記事見かけますが、virtualenv入れたらpip入るので、使うならそこで使えばいいですよ。それにpipもsetuptoolsモジュール叩くためにdistributeを呼ぶんで、結局システムに入れるパッケージ管理ツールはeasy_installのみでいいんじゃないすかね。下手にpipだけ入れるとdistutilsとかsetuptoolsのsetuptoolsを呼ぶんでやめたほうがいいです。おわり。
http://ymotongpoo.hatenablog.com/entry/2012/10/18/144352
- pip は Python でパッケージをインストールする仕組みで、その中身としては setuptools モジュールを実行している。
- 一口に setuptools モジュールといっても以下の 3 種類があるらしい。
- distutils パッケージの setuptools モジュール
- setuptools パッケージの setuptools モジュール
- distribute パッケージの setuptools モジュール
- で、上で書かれているように後発の distribute を使うのがよい、デファクトらしい。
- virtualenv を入れると pip は自動で入っているので activate したら pip し放題のはず。
- しかし Python 3.3 から入っている pyvenv は pip を用意してくれないので自分でインストールする必要がある。
easy_install をインストールする方法は何通りかあるようだ。
bitbucket から ez_setup.py をダウンロードする(methane さん)
$ curl -JO https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py $ python ez_setup.py
python-distribute.org から distribute_setup.py をダウンロードする(パーフェクト Python)
$ python -c "import urllib.request:urllib.request.urlretrieve('http://python-distribute.org/distribute_setup.py', 'distribute_setup.py')"
$ python distribute_setup.py
1 行目は Python ワンライナーでダウンロードしている。自分でやるときは普通に curl 使えばいいかな。
YAMAGUCHI さんのエントリでも distribute_setup.py を入れている。
$ curl -O http://python-distribute.org/distribute_setup.py
何となくだけど、distribute_setup.py にしよう。