最近の Python にはパッケージ管理まわりのモジュールが導入されて使いやすくなりつつある、という話はよく聞くが、どういうふうにそれらのツールを使うのが「正しい」とされているのかイマイチわかりづらかったので、自分のためにメモ。間違っている可能性がアリアリなのでぜひコメントで訂正お願いします。
環境は Python 3.4 を想定。つまり「ensurepip
と venv
とが入っている環境」を想定。
ノリとしては
- venv で仮想環境を作成。
$ pyvenv envname
- source bin/activate で仮想環境を activate.
$ source envname/bin/activate
- ensurepip で pip を導入。
$ python -m ensurepip
- pip でモジュールなどを導入。
$ pip install modulename
って感じの順番。
ここ を見ると、pyvenv myenv
とすれば pip まで導入されるように書いてあるので手順 3 以下はいらないのかも。
もし venv
が入っていない場合は、おそらく Python に同梱されているもの以外の venv はなくて、virtualenv で代替する必要がある。そうだとしたら下の方法で先に pip を導入してしまって pip install virtualenv
とするのが最も簡単である。virtualenv の使い方は、ほとんど venv と同じで、
$ virtualenv envname —system-site-packages
(既存のパッケージを含める場合)$ source envname/bin/activate
とする。環境中にモジュールを導入したい場合は、環境に入ってから pip を用いて入れる(環境生成時に自動で入ることもある)。環境から抜けたい場合は $ deactivate
とする。
もし ensurepip
が入っていない (Python <= 3.3) 環境ならば、pip を手動で導入する。環境の activate 後に
- get-pip で pip を導入。
$ wget [https://raw.github.com/pypa/pip/master/contrib/get-pip.py](https://raw.github.com/pypa/pip/master/contrib/get-pip.py)
$ python get-pip.py
とする。zip が文字列にエンコードされて入っているファンキーな感じのコードである。
venv の使い方
activate の方法は上に書いた通りに source する。activate したものを deactivate するには $ deactivate
と打てばよい。
デフォルトの Python を変更するには次のようなノリで。
export PYTHONPATH=$HOME/to/environment export PATH=$HOME/to/environment/bin:$HOME/local/bin:$PATH
環境を削除したいときは作成した環境のディレクトリを消せばよい。
pip の使い方
一括インストールなど、pip の使い方は ここ が詳しい。
cron とかするとき
http://stackoverflow.com/questions/3287038/cron-and-virtualenv
つまりは venv で作ったディレクトリ内の python をコマンドとして指定してやればよい。どのディレクトリにいるかが重要ならば、cd /fullpath/directory && /full/path/python /full/path/to/code.py
みたいにする。