さくらのレンタルサーバでpipを使えるようにする

memo

やったこと

さくらのレンタルサーバ(新サーバ)で、pipを使ってパッケージのインストール・使用ができるようにした。

補足情報

2022年2月15日以前からさくらのレンタルサーバを利用していた人は、最近さくらのレンタルサーバの新サーバに移行できるようになった。新サーバに移行すると、サーバが高性能化したり、python3.8が使えるようになったりする。
移行ツールについて(さくらのレンタルサーバの説明)
以前の環境では(だいぶ長い間)基本的にpython2.7しか使えなかったため、python3系を入れたりする記事などの情報がたくさんあった。が、新サーバ移行後の情報は現状あまりなかったため、多少自力で頑張る必要があった。
本記事はいまいちレンタルサーバが使いこなせない人向けに、分かりやすいおまじないをまとめる。

参考リンク

基本的に以下のリンク先の情報をもとに実行した。
kajits.sblo.jp/article/189693599.html

手順

pipのインストール

最初に、さくらのレンタルサーバにSSH接続を行い、以下のコマンドを実行して
pipをインストールする。

wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py


インストールに成功すると、色々なメッセージが流れ、最終的に以下のような感じで表示される。

WARNING: The script wheel is installed in '/home/dangomushi115/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
WARNING: The scripts pip, pip3 and pip3.8 are installed in '/home/dangomushi115/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.


pipの実行(これ以降、参考リンクと異なる手順)

ここで、「WARNING: The script wheel is installed in」の後に記載されたディレクトリにpipの実行ファイルがあることを覚えておく。
(各自の環境に合わせるには、基本的にはユーザー名を「dangomushi115(このブログの場合)」から各自のユーザー名に変更すればよい。本記事では、いちいち直すのが面倒なので「dangomushi115」のままコマンドの例などを示すが、作業を真似する際は適宜修正すること。)
参考リンクでは、pathや環境変数の設定を行っているが、いまいちやり方がわからなかったりうまくいかなかったので、自分は諦めて実行ファイルまでフルパスで指定すればいいや、と考えた。
すなわち、環境変数などを設定せず、pipの実行時は以下のようにすればよい。
(以下の例は、「mysqlclient」をインストールする例)

/home/dangomushi115/.local/bin/pip install mysqlclient

インストールしたパッケージの確認

インストールしたパッケージは、以下のコマンドで確認できる(要するに「pip freeze」を実行する)。

/home/dangomushi115/.local/bin/pip freeze

また、SSH接続しているコンソールから以下のコマンドを実行することで、インストールしたパッケージが保存されているディレクトリが表示されていることを確認する。

python
import sys
sys.path

以下のように表示され、「/home/dangomushi115/.local/lib/python3.8/site-packages」が表示されていればOKである。

['', '/usr/local/lib/python38.zip', '/usr/local/lib/python3.8', '/usr/local/lib/python3.8/lib-dynload', '/home/dangomushi115/.local/lib/python3.8/site-packages', '/usr/local/lib/python3.8/site-packages']


ここで表示されなかった場合、Pathを追加する必要がある。ちゃんとやると大変なので、大規模なcgiなどを開発するわけでないなら、以下のような感じで実行するプログラム毎にいちいちpathを追加してやればよい

sys.path.append("なんかimportしたいライブラリが入っているディレクトリ")

コメント