さくらのレンタルサーバー

さくらのレンタルサーバーでPythonを使う方法を紹介します。

さくらのレンタルサーバでPython使いたいんだけど使えるの?

Python使えますよ!

この記事ではさくらのレンタルサーバでPythonを使う方法を書いていきます。

この記事で分かること

  • さくらのレンタルサーバに入っているPythonを使う方法
  • 新たにPythonをインストールして使う方法

さくらのレンタルサーバでPythonを使いたい方は参考にしてみて下さい。

さくらのレンタルサーバでPythonを使っていきましょう。

さくらのレンタルサーバにPythonは入っている

さくらのレンタルサーバ にPythonは入っています。プログラムのコマンドパスを見てみるとこんな感じですね。

perl/usr/bin/perl
ruby/usr/local/bin/ruby
php/usr/local/bin/php
Python/usr/local/bin/python
sh/bin/sh
csh/bin/csh
sendmail/usr/sbin/sendmail
gcc/usr/bin/gcc
gzip/usr/bin/gzip
zip/usr/local/bin/zip
unzip/usr/local/bin/unzip
convert/usr/local/bin/convert
nkf/usr/local/bin/nkf
uuencode/usr/bin/uuencode
uudecode/usr/bin/uudecode
procmail/usr/local/bin/procmail

どのバージョンが使われているかも気になるね。

そうですね、確認してみましょう。

Pythonバージョンを確認してみる

SSH接続してPythonのバージョンを確認してみます。

[〇〇@〇〇 ~]$ /usr/local/bin/python --version
Python 3.8.12

3.8.12でした。もっと古いのが適用されていると思ったけど、結構新しいPythonが使われていて良いですね。

これなら自分で頑張ってPythonの環境整えるっていうこともしなくても大体いけそう。

他のバージョンとシンボリックリンクの確認

他のバージョンもありそうなので確認してみましょう。ついでにシンボリックリンクも見てみるとこんな感じです。

[〇〇@〇〇 ~]$ ls -l  /usr/local/bin | grep python
lrwxr-xr-x    1 root  wheel          24 Jan 13  2022 fail2ban-python -> /usr/local/bin/python3.8
lrwxr-xr-x    1 root  wheel           7 Jan 14  2022 python -> python3
lrwxr-xr-x    1 root  wheel          14 Jan 14  2022 python-config -> python3-config
lrwxr-xr-x    1 root  wheel           9 Jan 15  2022 python2 -> python2.7
lrwxr-xr-x    1 root  wheel          16 Jan 15  2022 python2-config -> python2.7-config
-r-xr-xr-x    1 root  wheel        5384 Jan 15  2022 python2.7
-r-xr-xr-x    1 root  wheel        1769 Jan 15  2022 python2.7-config
lrwxr-xr-x    1 root  wheel           9 Jan 14  2022 python3 -> python3.8
lrwxr-xr-x    1 root  wheel          16 Jan 14  2022 python3-config -> python3.8-config
-r-xr-xr-x    1 root  wheel        5248 Jan 13  2022 python3.8
-r-xr-xr-x    1 root  wheel        3093 Jan 13  2022 python3.8-config

python2.7も入っているけど、pythonコマンドで使うものはpython3.8になっていますね。

Pythonで仮想環境を作成する

デフォルトで入っているPythonで大体いけそうなので、これで仮想環境も作ってみます。

[/home/〇〇]
$ mkdir project
$ cd project
$ vim index.py

# 以下を記述
import requests
print(requests.get("https://www.python.jp").text)

index.pyにはrequestsが必要なコードを書きました。このコードを実行するにはrequestsをインストールする必要があります。

.venvを作成します。

$ python -m venv .venv

#これで配下に.venvが作られます。

仮想環境を有効化する

仮想環境を作ったので有効化します。

$ . .venv/bin/activate

# 有効化すると以下のような表示になります。
(.venv) [〇〇 project]$

仮想環境を有効化したらrequestsを入れます。

$ python -m pip install requests

これでファイルを実行するとrequestsが入っているのでちゃんと動いてくれました。

$ python index.py
# 実行結果が表示される。

新たにPythonをインストールして使う

最初から入っているPythonではなくて、新しくPythonをインストールして使いたいっていう場合もあるかと思います。pyenvを使ってインストールしてみます。

ただレンタルサーバーなので何でもかんでもインストールできるっていうわけでもないです。

$ wget https://www.python.org/ftp/python/3.11.1/Python-3.11.1.tgz
$ tar zxf Python-3.11.1.tgz
# 解凍されたファイルができる
$ mkdir -p $HOME/usr/local/python
$ cd Python-3.11.1
$ ./configure CPPFLAGS="-I/usr/local/ssl/include" LDFLAGS="-L/usr/local/ssl/lib" --prefix=$HOME/usr/local/python
$ make
$ make install
$ $HOME/usr/local/python/bin/python3 -V
/home/xxxxx/Python-3.11.1

一応これでpython3コマンドでインストールしたPythonは使えるようになりました。

pathを変更したい

現状だとインストールしたPythonはフルパスなら実行できますが、できればpythonだけで実行したいです。現状のシンボリックリンクがどうなっているか確認してみます。

まずはデフォルトでインストールされているpythonのシンボリックリンクを見てみると、python->python3->python3.8っていうシンボリンクリンクが貼られています。

[/usr/local/bin]$ ls -l | grep python
lrwxr-xr-x    1 root  wheel          24 Jan 13  2022 fail2ban-python -> /usr/local/bin/python3.8
lrwxr-xr-x    1 root  wheel           7 Jan 14  2022 python -> python3
lrwxr-xr-x    1 root  wheel          14 Jan 14  2022 python-config -> python3-config
lrwxr-xr-x    1 root  wheel           9 Jan 15  2022 python2 -> python2.7
lrwxr-xr-x    1 root  wheel          16 Jan 15  2022 python2-config -> python2.7-config
-r-xr-xr-x    1 root  wheel        5384 Jan 15  2022 python2.7
-r-xr-xr-x    1 root  wheel        1769 Jan 15  2022 python2.7-config
lrwxr-xr-x    1 root  wheel           9 Jan 14  2022 python3 -> python3.8
lrwxr-xr-x    1 root  wheel          16 Jan 14  2022 python3-config -> python3.8-config
-r-xr-xr-x    1 root  wheel        5248 Jan 13  2022 python3.8
-r-xr-xr-x    1 root  wheel        3093 Jan 13  2022 python3.8-config

このシンボリックリンクを張り替えればpythonコマンドを新たにインストールしたpythonで実行するようにできるだろうけど、シンボリックリンクを削除しようとするとPermission deniedですね。

$ unlink /usr/local/bin/python3
unlink: python3: Permission denied

シンボリックリンク張り替えてみようと他のコマンド打ってもPermissionエラー起きました。

python3のPATHを追加する

しょうがないので新たにインストールしたpythonのパス($HOME/usr/local/python/bin/python3)にパスを通します。

$ echo 'export PATH="$HOME/usr/local/python/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
$ python3 --version
Python 3.11.1

とりあえずこれでpython3と打てば新たにインストールしたPythonを実行できるようになりました。

まとめ

mixhostでPythonを使うっていうことをやったけど、今回は以下のことをやりました。

  • さくらのレンタルサーバでPython環境の確認
  • 仮想環境を作成
  • 新たにPythonをインストールする

さくらのレンタルサーバ で使われているデフォルトのPythonですが、割と新しめのPythonで良いなという印象です。他だと2系とかあったりするのでこれは嬉しいです。

Pythonを使いたかったら使ってみるといいですよ。

-さくらのレンタルサーバー