さくらのレンタルサーバに Python3 をインストールする方法

さくらのレンタルサーバにはデフォルトで Python2 系のみ入っているのですが、残念ながらPython2 は 2020 年にサポートが終了していてもう推奨されていません。

というか Python2 だ Python3 だ以前にレンタルサーバーの Python で色々やろうという考えが半ば間違いみたいな部分もありますが。笑

▶︎【7社比較】レンタルサーバーの大クセ Python は本当は使いづらい!?
▶︎レンタルサーバーで Python は茨の道!VPS が楽得でおすすめ

とはいえいろんな理由でまださくらのレンタルサーバで頑張りたい方のために、Python3 系をインストールする方法を紹介します。

さくらのレンタルサーバに Python3 をインストールする

では本編、さくらのレンタルサーバーに Python3 をインストールする方法を案内します。

ちなみに私が使っているのはさくらのレンタルサーバ スタンダードで、ローカルは Mac で作業します。

▶︎さくらのレンタルサーバ スタンダード

  1. ssh でさくらレンタルサーバにログイン
  2. ダウンロード用のフォルダを作成
  3. wget でファイルをダウンロード
  4. ファイルを解凍する
  5. インストール
  6. パスを通す
  7. 設定を反映
  8. パスが通ったことを確認して完了
  9. さくらのレンタルサーバ以外の選択肢

1. ssh でさくらレンタルサーバにログイン

まずはターミナルを立ち上げ、ssh でさくらレンタルサーバにログインします。

Last login: Sun Oct 11 10:43:12 on ttys000
% ssh XXXXXX@XXXXXX.sakura.ne.jp
XXXXXX@XXXXXX.sakura.ne.jp's password: 

2. ダウンロード用のフォルダを作成

ファイルをダウンロードする前に、ダウンロード用のフォルダを作っておきます。下記のコマンドで「work」フォルダとその配下に「python3」フォルダを作成します。

% mkdir -p ~/work/python3

FTPクライアントで見てみると下記の様に各フォルダが作成されているのが確認できます。

3. wget でファイルをダウンロード

% cd ~/work/python3
% wget --no-check-certificate https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz

ファイルがダウンロードされ、下記の様に入力待ちになれば無事ダウンロード完了です。

% wget --no-check-certificate https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
--2020-10-11 12:39:03--  https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
Resolving www.python.org... 151.101.88.223, 2a04:4e42:15::223
Connecting to www.python.org|151.101.88.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 26724009 (25M) [application/octet-stream]
Saving to: 'Python-3.9.0.tgz'

Python-3.9.0.tgz    100%[=====================>]  25.49M  43.9MB/s   in 0.6s   

2020-10-11 12:39:03 (43.9 MB/s) - 'Python-3.9.0.tgz' saved [26724009/26724009]

% 

念のため覗いてみると、先ほど作成した「python3」フォルダのなかに「Python-3.9.0.tgz」のファイルがダウンロードされているのが分かります。

4. ファイルを解凍する

% tar zxf Python-3.9.0.tgz

ファイルが解凍され、元々ダウンロードした圧縮ファイルとは別に「Python-3.9.0」という名前のフォルダが作成されています。

5. インストール

解凍されたフォルダ「Python-3.9.0」に移動します。

% cd ./Python-3.9.0

次に ./configure を実行しますが、その際 prefix を使ってインストールするディレクトリを指定します。

% ./configure --prefix=$HOME/local/python/ --with-system-ffi LDFLAGS="-L $HOME/local/lib/" CPPFLAGS="-I $HOME/local/include/"

*--with-system-ffi 以降の部分は無くても Python3 のインストールはできますが、後々 _ctypes の問題があったので追記しました。

実行するとプロセスが走ってドバドバとターミナルに表示されますが、下記が表示されて入力待ちの状態になったら完了です。

creating Modules/Setup.local
creating Makefile

「make」を実行します。

%  make

しばらくプロセスが走るので入力待ちになるまで待ちます。次に「make install」を実行します。

%  make install

またプロセスが走るので最後下記の様な表示が出て入力待ちになるまで待ちます。

Installing collected packages: setuptools, pip
  WARNING: The script easy_install-3.9 is installed in '/home/XXXXXX/local/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.
  WARNING: The scripts pip3 and pip3.9 are installed in '/home/XXXXXX/local/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-20.2.3 setuptools-49.2.1
% 

実は上のログに2箇所「WARNING」として警告が表示されているのですが、その内容が以下の通り。

WARNING:スクリプトeasy_install-3.9は、「PATH」にない「/home/XXXXXX/local/python/bin」にインストールされています。このディレクトリを「PATH」に追加することを検討してください。
WARNING:スクリプトpip3およびpip3.9は、「PATH」にない「/home/XXXXXX/local/python/bin」にインストールされています。このディレクトリを「PATH」に追加することを検討してください。

これは後ほど .cshrc ファイルを編集して解決します。

local > python というディレクトリが作られ、さらにその配下に様々なフォルダが作られています。

6. パスを通す

python3 と pip3 のインストール自体は完了しましたが、この状態だとまだ python3 や pip3 と言ったコマンドを直接使うことができません。いわゆる「パスが通っていない」状態です。「which」コマンドを実行しても下記の通りエラーが返ってきます。

% which python3
python3: Command not found.
% which pip3
pip3: Command not found.

python3 と pip3 が両方とも「$HOME/local/python/bin」にインストールされている状態です。

.cshrc ファイルを編集することでパスを通しますが、この作業をする前に必ず .cshrc のバックアップをとっておきましょう。

% cd ~/
% vi .cshrc

.cshrc の内容がターミナルに表示されます。

# $FreeBSD: src/share/skel/dot.cshrc,v 1.14.6.1 2008/11/25 02:59:29 kensmith Exp
 $
#
# .cshrc - csh resource script, read at beginning of execution by each shell
#
# see also csh(1), environ(7).
#

alias h         history 25
alias j         jobs -l
alias la        ls -a
alias lf        ls -FA
alias ll        ls -lA

# A righteous umask
umask 22

set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin)

setenv  EDITOR  vi
setenv  PAGER   more
setenv  BLOCKSIZE       K
setenv  PKG_DBDIR       ~/db/pkg

if ($?prompt) then
        # An interactive shell -- set some stuff up
        set filec
        set history = 100
        set savehist = 100
        set mail = (/var/mail/$USER)
        if ( $?tcsh ) then
                bindkey "^W" backward-delete-word
                bindkey -k up history-search-backward
                bindkey -k down history-search-forward
        endif
endif

このファイルの最後に「set path = ($path $HOME/local/python/bin)」を追記したいのですが、手順が少しややこしいので下記の記事などを参考にしつつ行ってください。

https://www.hpc.co.jp/support/hello_vi_02/

以下の様に、ファイルの一番最後に一行だけ追記しました。

                bindkey "^W" backward-delete-word
                bindkey -k up history-search-backward
                bindkey -k down history-search-forward
        endif
endif
set path = ($path $HOME/local/python/bin)

7. 設定を反映

.cshrc で変更した内容を反映させます。

% source ~/.cshrc
% rehash

8. パスが通ったことを確認して完了

パスを通す前はエラーが返ってきた「which」コマンドですが、今回はきちんと python3、pip3 のパスが表示されます。

% which python3
/home/XXXXXX/local/python/bin/python3
% which pip3
/home/XXXXXX/local/python/bin/pip3
% 

バージョン情報もきちんと表示されます。

% python3 --version
Python 3.9.0
% pip3 --version
pip 20.2.3 from /home/XXXXXX/local/python/lib/python3.9/site-packages/pip (python 3.9)
% 

最後に圧縮ファイルのダウンロードに使ったフォルダとファイルを削除して完了です。

% rm -r ~/work/python3

9. さくらのレンタルサーバ以外の選択肢

冒頭でも触れましたが、Python プログラミングにレンタルサーバーは向いていません

レンタルサーバーと VPS 両方試した上で VPS をお勧めしますので、下記の記事も参考にしていただければと思います。

▶︎【7社比較】レンタルサーバーの大クセ Python は本当は使いづらい!?
▶︎レンタルサーバーで Python は茨の道!VPS が楽得でおすすめ

と同時に、さくらのレンタルサーバーで Python3 をインストールしたみなさんであればもう下記の記事まで突っ走っても良いかもしれないとも思っています。

▶︎さくらレンタルサーバーでスクレイピング定期実行 & DB 保存

熱意に拍手を送ります。

“さくらのレンタルサーバに Python3 をインストールする方法” への2件の返信

  1. 有難うございます。
    こちらの手順で全く問題なくpython3をさくらインターネットレンタルサーバーにインストールできました。

  2. すごくわかりやすく、大変助かりました! ありがとうございます!

JackDanielSuper へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です