さくらのレンタルサーバで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を使いたかったら使ってみるといいですよ。