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

計算物理屋の研究備忘録

Linux, Cygwin, Mac, zsh, emacs等の使い方、設定などのメモ

管理者権限のない環境でpipを使えるようにしてPython環境を整える

Python

2015/03/21 追記
管理者権限のないLinux環境ではpyenvを使ってPython環境を構築した方がいい
最新バージョンのpythonであればpipはデフォルトで使える
keisanbutsuriya.hateblo.jp 追記終了

pipとは

pipPythonのパッケージ管理ツールの一つ。パッケージ管理ツールはいくつもあるらしいが、pipがデフォルトになりつつあって、かなり最近のバージョンのPythonにはpipがデフォルトで入っているとのこと。

pipをインストールするにはeasy_installという古株のパッケージ管理を使う。ややこしい。Pythonが入っていればeasy_installはだいたいデフォルトで入っているのであるものとして話を進める。

サーバーなどで管理者権限無しの場合の環境構築のやり方を以下にメモしておく。

pipのインストール

easy_installを普通に使うと、パッケージがインストールされるディレクトリは以下のようになる(バージョン2.6の場合)

/usr/lib/python2.6/site-packages/

/usr以下は管理者権限がないとアクセスできない。エラーが出るのはわかっているが、ものは試しにまずは普通に使ってみる。easy_installの使い方はただ直後にパッケージ名を打ち込めばよい

$ easy_install pip
error: can't create or remove files in install directory

The following error occurred while trying to add or remove files in the
installation directory:

    [Errno 13] Permission denied: '/usr/lib/python2.6/site-packages/test-easy-install-9577.write-test'

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

    /usr/lib/python2.6/site-packages/

Perhaps your account does not have write access to this directory?  If the
installation directory is a system-owned directory, you may need to sign in
as the administrator or "root" account.  If you do not have administrative
access to this machine, you may wish to choose a different installation
directory, preferably one that is listed in your PYTHONPATH environment
variable.

For information on other options, you may wish to consult the
documentation at:

  http://peak.telecommunity.com/EasyInstall.html

Please make the appropriate changes for your system and try again.

いろいろと丁寧に教えてくれる。パーミッションで拒否されたから --perfixとか使ってディレクトリ指定しろ。ディレクトリはPYTHONPATHに含めとけ。 ということらしい。

自分で入れるパッケージなどは$HOME/local/以下にまとめているのでPython関係もここにインストールすることにする。まずディレクトリを作成しておく

$ mkdir -p ~/local/lib/python2.6/site-packages/

PYTHONPATHを通す。zshrcとかに以下の様に書いておく。パスは先に通しておかないと、easy_installでエラーがでる。

export PYTHONPATH=$HOME/local/lib/python2.6/site-packages:$PYTHONPATH

あとは以下のコマンドでpipをインストールするだけ。ディレクトリ指定は$HOME/localまででよい。上で指定したディレクトリにパッケージがインストールされて実行ファイルは $HOME/local/binにインストールされる

$ easy_install --prefix=$HOME/local pip

使い方

パッケージをインストールする場合のpipのコマンドはpip install
インストールするディレクトリの指定は少し変わっていて、--install-option="--prefix=(インストールしたいディレクトリへのパス)"のように指定する。 下記コマンドで例えばpercolがインストールできる

$ pip install --install-option="--prefix=$HOME/local" percol