(Linux)ローカルにPythonを導入する
・sudo権限が無い場合
・手順①:ソースコードのダウンロード
・手順②:ソースコードからビルドする
・手順③:ローカル環境のPythonのパスを通す
sudo権限が無い場合
Pythonはデフォルトでは /usr/local/ 以下にインストールされるが、root権限が無い限り、このディレクトリには書き込みができない。したがって、スーパーユーザー権限が無い場合にPythonを導入するにはローカル環境(自分の/home/[user名]/ 以下)にインストールする必要がある。
Python 3.10以降では、OpenSSL1.1.1以降が必須となった。CentOS7系ではOpenSSL 1.0.2が使用されているため、そのままではPython3.10をインストールすることができない。Python3系さえ使えればよいのなら、Python3.9をインストールすることを推奨する。
ここでは /home/[user名]/python/ というディレクトリにインストールしてみる。(以下、カレントディレクトリを /home/[user名]/python/
とする)。
手順①:ソースコードのダウンロード
“Python Source Releases” のページから目的のバージョンのPythonのソースコードをダウンロードする。
例えば3.11.1であれば、ここから tar.xz ファイルをダウンロードすればよい(”XZ compressed source tarball” などと書いてある部分をクリックすればよい)。ここでは 3.9.16 のバージョンを導入する。
CUIの場合は、以下のように wget コマンドによって取得することも可能。
wget https://www.python.org/ftp/python/3.9.16/Python-3.9.16.tar.xz
解凍するには以下のようにする。
tar xJf Python-3.9.16.tar.xz
ここで Python-3.9.16 という名前のディレクトリが生成するので、
cd Python-3.9.16
手順②:ソースコードからビルドする
次に、ソースコードからビルドする。ここで、ビルドの準備として configure を実行するが、このとき configure の設定を変更しておく必要がある。
configure の設定を変更しておかないと /usr/local/ にインストールする設定になってしまい、root権限が無い場合は上手くいかない。
以下のようにオプションを付けて configure を実行する。インストール先となるディレクトリのパスは各自の環境に合わせて適宜変更して構わない。
./configure --prefix=/home/[user名]/python
完了までに数分掛かることがあるので気長に待とう。
一通り終わったら make するが、この作業は時間が掛かるため並列処理で実行するのが良い。並列数はCPUのコア数が上限となるので、cpuinfo コマンドでCPUの情報を取得する。
===== Processor composition ===== Processor name : Intel(R) Xeon(R) Bronze 3104 Packages(sockets) : 1 Cores : 6 Processors(CPUs) : 6 Cores per package : 6 Threads per core : 1 (以下略)
この場合、Cores が6と分かるので、以下のように6並列で make することにしよう。make が終わったら make install
でインストールを完了する。
make -j6 make install
以下のように出力されていればインストールは成功である。
Installing collected packages: setuptools, pip WARNING: The scripts pip3 and pip3.9 are installed in '/home/[user名]/python/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. Successfully installed pip-22.0.4 setuptools-58.1.0
この状態でも動かせることは動かせるが、少し使い勝手が悪い。そこで、残りの作業を済ませる。
手順③:ローカル環境のPythonのパスを通す
ここで、Pythonを起動するには /home/[user名]/python/bin を環境変数 PATH に加える必要がある。いわゆる「パスを通す」という作業である。
シェルがbashで動いている場合、 .bashrc
に次の1行を追記する。
export PATH=${HOME}/python/bin:${PATH}
追記して上書き保存した後、
source ~/.bashrc
として .bashrc
をソースする。この状態で
python3
というコマンドを叩くと、以下のようにPython 3.9.16のインタプリタが起動する。
Python 3.9.16 (main, Jan 24 2023, 21:49:39) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
py
だけで3系のPythonを呼び出したい場合は alias を設定すればよい。先ほどと同じように .bashrc
に次の1行を追記してソースする(このとき “=” の間に半角スペースを入れてはいけない)。
alias py='python3'
このようにすれば、次のようにしてPythonスクリプトを3系のPython環境で実行することができるようになる。
py xxxx.py