さくらインターネットの共用サーバに、新たにpip(Pythonパッケージのインストールを行うユーティリティ)を導入し、HTMLスクレイピングを行うBeautifulSoupパッケージをインストールした時のメモ
OpenSSLとpython 2.7をユーザディレクトリにインストール
共用サーバに標準でインストールされているOpenSSLが古く、(piphttpsサイトにアクセスするときにエラー発生の原因となるため、新しいOpenSSLとそれに対応したPython 2.7系をローカルにインストールする。
参考記事として、『 さくらのレンタルサーバでHTTPS (TLS) 対応のPython 2.7をビルドした記録 』をそのまま適用可能だった。
まず、現在のOpenSSLのバージョン、Pythonのバージョンを調べる
$ python -c 'import ssl; print ssl.OPENSSL_VERSION' OpenSSL 0.9.8zf 19 Mar 2015 $ python --version Python 2.7.6
ローカルのインストールディレクトリを確認し、存在しない場合は作成する
$ mkdir -p ~/.local/lib/python2.7/site-packages
OpenSSLのビルドとインストール
$ wget https://www.openssl.org/source/openssl-1.0.2q.tar.gz $ tar xvfz openssl-1.0.2q.tar.gz $ cd openssl-1.0.2q $ ./config --prefix=${HOME}/.local -fPIC $ gmake $ gmake test $ gmake install
Python 2.7のビルドとインストール。Pythonは2.7系の最新バージョンをhttps://www.python.org/ftp/python
で調べてダウンロードした
なお、Pythonのgmake test
は時間がかかりすぎるため、システム側からkillされてしまった。test実行なしに、いきなりinstallを行ったが特に問題はない
$ wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz $ tar xvfz Python-2.7.15.tgz $ cd Python-2.7.15 $ env CXX=/usr/bin/g++ ./configure --prefix=${HOME}/.local --enable-unicode=ucs4 $ gmake $ gmake install
環境変数の設定
.cshrcを次のように設定する
set path = ($HOME/.local/bin /sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin $HOME/bin)
setenv PYTHONPATH $HOME/.local/lib/python2.7/site-packages
setenv LD_LIBRARY_PATH $HOME/.local/lib
変更を反映するには、次のコマンドを実行するか、いったんログアウトして再ログインする。
$ source ~/.cshrc
OpenSSLとPythonのインストール状態の確認
$ which python /home/USER_NAME/.local/bin/python $ python -c 'import ssl; print ssl.OPENSSL_VERSION' OpenSSL 1.0.2q 20 Nov 2018 $ python --version Python 2.7.15
~/.local/bin
にインストールされたファイルは
$ ls -la ~/.local/ total 28 drwxr-xr-x 7 tmg1136-inue users 512 18/12/17 22:47 ./ drwx------ 25 tmg1136-inue users 1024 18/12/17 22:52 ../ drwxr-xr-x 2 tmg1136-inue users 512 18/12/17 22:56 bin/ drwxr-xr-x 4 tmg1136-inue users 512 18/12/17 22:47 include/ drwxr-xr-x 5 tmg1136-inue users 512 18/12/17 22:47 lib/ drwxr-xr-x 3 tmg1136-inue users 512 18/12/17 22:47 share/ drwxr-xr-x 6 tmg1136-inue users 512 18/12/17 22:14 ssl/ $ ls -la ~/.local/bin/ total 9272 drwxr-xr-x 2 tmg1136-inue users 512 18/12/17 22:56 ./ drwxr-xr-x 7 tmg1136-inue users 512 18/12/17 22:47 ../ -rwxr-xr-x 1 tmg1136-inue users 116 18/12/17 22:22 2to3* -rwxr-xr-x 1 tmg1136-inue users 5131 18/12/17 22:14 c_rehash* -rwxr-xr-x 1 tmg1136-inue users 245 18/12/17 22:56 chardetect* -rwxr-xr-x 1 tmg1136-inue users 254 18/12/17 22:52 easy_install* -rwxr-xr-x 1 tmg1136-inue users 254 18/12/17 22:52 easy_install-2.7* -rwxr-xr-x 1 tmg1136-inue users 114 18/12/17 22:22 idle* -rwxr-xr-x 1 tmg1136-inue users 3020552 18/12/17 22:14 openssl* -rwxr-xr-x 1 tmg1136-inue users 236 18/12/17 22:52 pip* -rwxr-xr-x 1 tmg1136-inue users 236 18/12/17 22:52 pip2* -rwxr-xr-x 1 tmg1136-inue users 236 18/12/17 22:52 pip2.7* -rwxr-xr-x 1 tmg1136-inue users 99 18/12/17 22:22 pydoc* lrwxr-xr-x 1 tmg1136-inue users 7 18/12/17 22:47 python@ -> python2 lrwxr-xr-x 1 tmg1136-inue users 14 18/12/17 22:47 python-config@ -> python2-config lrwxr-xr-x 1 tmg1136-inue users 9 18/12/17 22:47 python2@ -> python2.7 lrwxr-xr-x 1 tmg1136-inue users 16 18/12/17 22:47 python2-config@ -> python2.7-config -rwxr-xr-x 1 tmg1136-inue users 6261818 18/12/17 22:47 python2.7* -rwxr-xr-x 1 tmg1136-inue users 1702 18/12/17 22:47 python2.7-config* -rwxr-xr-x 1 tmg1136-inue users 18562 18/12/17 22:22 smtpd.py* -rwxr-xr-x 1 tmg1136-inue users 239 18/12/17 22:55 trac-admin* -rwxr-xr-x 1 tmg1136-inue users 242 18/12/17 22:55 tracd* -rwxr-xr-x 1 tmg1136-inue users 232 18/12/17 22:52 wheel*
pipのインストール
$wget https://bootstrap.pypa.io/get-pip.py $python get-pip.py
または
$ easy_install --prefix=~/.local pip
BeautifulSoupほか、必要なパッケージをインストール
$ pip install beautifulsoup $ pip install chardet $ pip install trac
tracは『【さくらインターネット】 ユーザ権限でSubversionのWebインターフェースを運用』でインストールした後、使わなくて放置していたものだが、とりあえず再インストールした。
インストールされているライブラリ一覧を表示してみる
$ python -m pip freeze BeautifulSoup==3.2.1 chardet==3.0.4 Genshi==0.7.1 Trac==1.2.3