さくらインターネットのレンタルサーバにPython3.6.8をインストール

さくらインターネットのレンタルサーバ(FreeBSD)にはPython2.7.6がインストールされているのですが(2019/3/16現在)、3系も使えるようにしたので手順をメモしておきます。

■SSHでサーバへログインし、Pythonのアーカイブファイルをダウンロードします

% mkdir -p ~/workspace/python3
% cd ~/workspace/python3
% wget --no-check-certificate https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz

さくらレンタルサーバーにSSHでログインする方法はこちらを参照
SSHについて – さくらのサポート情報

Pythonのアーカイブファイルはこちらを参照
https://www.python.org/ftp/python/

■tgzファイルを解凍します

% tar -zxvf ./Python-3.6.8.tgz

■Python3.6.8 をインストールします
オプションでOpenSSL関連ファイルの場所を指定してコンパイル。この指定がないと古いOpenSSLを参照してしまい、pipインストールができなくなる恐れがあります。

% cd ./Python-3.6.8
% ./configure CPPFLAGS="-I/usr/local/ssl/include" LDFLAGS="-L/usr/local/ssl/lib" --prefix=$HOME/local/python
% make
% make install

■$HOME/local/pythonにインストールしたので、.cshrcを編集してパスを通します

% vi ~/.cshrc
#以下を追加
set path = ($path $HOME/local/python/bin)
setenv PYTHON $HOME/local/python/lib
setenv PYTHONPATH $HOME/local/python/lib/python3.6/site-packages
setenv LD_LIBRARY_PATH $HOME/local/python/lib

■変更した設定を反映します

% source ~/.cshrc
% rehash

■環境変数PATHの設定が反映されたことと、バージョンを確認します

% which python3
% which pip
% python3 --version
Python 3.6.8
% python --version
Python 2.7.6

■実行してみます

% python3
Python 3.6.8 (default, Mar 16 2019, 10:53:41)
[GCC 4.2.1 20070831 patched [FreeBSD]] on freebsd9
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/home/xxx/local/python/lib/python36.zip', '/home/xxx/local/python/lib/python3.6', '/home/xxx/local/python/lib/python3.6/lib-dynload', '/home/xxx/local/python/lib/python3.6/site-packages']

大丈夫そうですね。

■pipもアップブレードしておきます

% pip install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/d8/f3/413bab4ff08e1fc4828dfc59996d721917df8e8583ea85385d51125dceff/pip-19.0.3-py2.py3-none-any.whl (1.4MB)
    100% |################################| 1.4MB 4.9MB/s
Installing collected packages: pip
  Found existing installation: pip 18.1
    Uninstalling pip-18.1:
      Successfully uninstalled pip-18.1
Successfully installed pip-19.0.3

■最後に作業用ディレクトリを削除します

% rm -r ~/workspace/python3/

以上です。

10 件のコメント

    • 下記のようにすれば .cshrc を直接編集(ファイルの最後に挿入)できますが、もし間違ったときなど直せなくなるので vi の操作方法を覚えた方が早いと思います!

      あと実行する前に、.cshrc のバックアップをお忘れなく!
      (実行に伴う予期せぬ事故などは自己責任でお願いします)

      echo "set path = (\$path \$HOME/local/python/bin)" >> ~/.cshrc
      echo "setenv PYTHON \$HOME/local/python/lib" >> ~/.cshrc
      echo "setenv PYTHONPATH \$HOME/local/python/lib/python3.6/site-packages" >> ~/.cshrc
      echo "setenv LD_LIBRARY_PATH \$HOME/local/python/lib" >> ~/.cshrc
      
  • `pip install –upgrade pip`
    と入力しても`pip: Comand not found.` と出てしまうのですが、なにか解決方法はないでしょうか?
    ちなみに
    `which pip`
    でも同様の結果が返ってきます

  • 同じようにインストールしたはずなのですが、「source ~/.cshrc」を入力すると、次のようなエラーが出てしまうのですがどうしたらいいでしょうか?

    -bash: alias: h: not found
    -bash: alias: history: not found
    -bash: alias: 25: not found
    -bash: alias: j: not found
    -bash: alias: jobs: not found
    -bash: alias: -l: not found
    alias la=’ls -la’
    -bash: alias: ls: not found
    -bash: alias: -a: not found
    -bash: alias: lf: not found

    と、

    /.cshrc: line 17: syntax error near unexpected token `(‘
    /.cshrc: line 17: `set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin)’

    また、rehashを使用すると、
    rehash: command not found となってしまうので、それについてもお聞きしたいです🙇‍♂️

    • csh で説明していますが、エラーを見ると bash が使われてるようです。
      使用されているシェルは、

      $ echo $SHELL
      

      で確認できるかと!

      > また、rehashを使用すると、
      bash の場合は、

      $ hash -r
      

      ですかね。

  • とっても参考になりました、ありがとうございました。
    そこでひとつ教えてください。

    `which pip`
    とやると
    `pip: Command not found.`
    と表示されますが
    `which pip3`
    とやると返ってきます。
    (`pip3 -V` だと `pip 18.1 from ~~ ` と表示されます)

    この場合はアップデートの必要はないでしょうか。

    • アップデート不要です。
      慣れてる pip で実行したいならエイリアスを追加するなりシンボリックリンクを作成すれば良いと思いますが、pip3 で実行しても問題ありません。

  • コメントを残す

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