バリューサーバー で mysql-python を使いたかったので、easy_install を使ってインストールしました。
以下は、valueserver.jp に SSH でログインして実行しています。
使いたいパッケージが入っているか調べる
前に書いた記事「python版phpinfo」の pyinfo.py をインストールして見てみます。
pyinfo.pyの導入
$ wget http://www.twoevils.org/files/pyinfo.txt --2014-06-04 09:42:53-- http://www.twoevils.org/files/pyinfo.txt www.twoevils.org をDNSに問いあわせています... 204.246.122.18 www.twoevils.org|204.246.122.18|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 11715 (11K) [text/plain] `pyinfo.txt' に保存中 100%[===================================>] 11,715 --.-K/s 時間 0s 2014-06-04 09:42:54 (78.6 MB/s) - `pyinfo.txt' へ保存完了 [11715/11715] $ mv pyinfo.txt pyinfo.py $ chmod 755 pyinfo.py
ブラウザで pyinfo.pyに アクセスして、表示してみると MySQL-Python は入っていませんでした。
そこで、独自にインストールします。
以下の作業は「さくらのレンタルサーバに Python モジュールをインストール」というページに書いてあることを、そのままバリューサーバーで実行しました。
easy_install の確認
バリューサーバーには既に easy_install は入っています。
$ which easy_install /usr/bin/easy_install
ただ、そのまま easy_install コマンドを実行しても、システム標準の場所にインストールしようとして失敗します。
そこで「さくらのレンタルサーバに Python モジュールをインストール」に書いてある通り、あらかじめ設定しておきます。
*上記のサイトには、ローカルにインストールするオプションや、ローカルに入れたモジュールを使う方法も書いてあります。
site.USER_SITE の確認
Python を起動して、ユーザー・サイト用のディレクトリがどこに設定されているかを調べます。
$ python Python 2.6.6 (r266:84292, Nov 22 2013, 12:16:22) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import site >>> site.USER_SITE '/virtual/xxxxx/.local/lib/python2.6/site-packages' >>>
設定されているのは ‘/virtual/xxxxx/.local/lib/python2.6/site-packages’ ですが、そのディレクトリは用意されていませんので、自分で作る必要があります。ちなみに、/virtual/xxxxx が自分のホームディレクトリになります。
$ mkdir -p ~/.local/lib/python2.6
.pydistutils.cfg の作成
.pydistutils.cfg を作ることで easy_install に –prefix オプションをつける必要はなくなります。また、sys.path に PATH の追加もしないで済むので楽になります。
$ echo '[install]' > ~/.pydistutils.cfg $ echo 'user=1' >> ~/.pydistutils.cfg $ cat ~/.pydistutils.cfg [install] user=1
easy_install を使ってみる
後は、普通に easy_install コマンドでモジュールをインストールできます。
MySQL-Python をインストールします。
$ easy_install mysql-python Searching for mysql-python Reading http://pypi.python.org/simple/mysql-python/ Best match: MySQL-python 1.2.5 Downloading https://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.5.zip#md5=654f75b302db6ed8dc5a898c625e030c Processing MySQL-python-1.2.5.zip Running MySQL-python-1.2.5/setup.py -q bdist_egg --dist-dir /tmp/easy_install-UDQRse/MySQL-python-1.2.5/egg-dist-tmp-yYD_3Q /usr/include/mysql/my_config.h:14 から include されたファイル中, _mysql.c:44 から: /usr/include/mysql/my_config_x86_64.h:422:1: 警告: "HAVE_WCSCOLL" が再定義されました /usr/include/python2.6/pyconfig.h:6 から include されたファイル中, /usr/include/python2.6/Python.h:8 から, _mysql.c:29 から: /usr/include/python2.6/pyconfig-64.h:808:1: 警告: ここが以前の宣言がある位置です zip_safe flag not set; analyzing archive contents... Adding MySQL-python 1.2.5 to easy-install.pth file Installed /virtual/xxxxx/.local/lib/python2.6/site-packages/MySQL_python-1.2.5-py2.6-linux-x86_64.egg Processing dependencies for mysql-python Finished processing dependencies for mysql-python
先ほどの、pyinfo.py にブラウザでアクセスしてみると MySQL (MySQL-Python) が enabled に変わっています。
サーバーの細かな設定が誰でも読めてしまうのは、セキュリティの心配があるので、当サイトでは確認終了後に pyinfo.py は削除しました。
$ rm pyinfo.py