conoha wingに最新Pythonの環境構築

スポンサーリンク
python Python
スポンサーリンク

 タカです。今日は、このブログを置いているレンタルサーバー『conoha wing』に最新のPython環境を構築してみます。conoha wingには最初からPython3.6.11が入っているのですが、今回は折角なら自分で最新バージョンのPythonを導入してみようと思います。(個人的な備忘録を兼ねてますw)

 クライアント環境:Windows11 

 サーバー環境:conoha wingベーシックプラン

レンタルサーバーへのSSH接続

 まずは、sshでレンタルサーバーに繋がらなければいけないので、conoha wingの利用ガイドを見て、SSHのプライベートキーを入手します。その時、「ネームタグ」「ホスト名」「ポート番号」「ユーザー名」は控えておきます。

 そして、プライベートキーは、自分のパソコンのUsersディレクトリの中の自分のホームディレクトリ直下にある、「.ssh」のディレクトに入れておきます。それができたら、SSH接続の準備はOKです。

 『Windows PowerShell』などのターミナルを立ち上げて、

  ssh [ユーザー名]@[ホスト名] -p [ポート番号] -i ~/.ssh/[ネームタグ].pem

 を打ち込みます。

 例えば、[ネームタグ]が「abcdefg」、[ホスト名]が「wwwyyy.conoha.ne.jp」、[ポート番号]が「8022」、[ユーザー名]が「cxxxxxxxx」だった場合、下のようになります。

PS C:\Users\default> ssh cxxxxxxxx@wwwyyy.conoha.ne.jp -p 8022 -i ~/.ssh/abcdefg.pem
[cxxxxxxxx@web0yyy ~]$

 これでうまくいけば、「[[ユーザー名]@webxxxx]$」となり、サーバーに接続できるはずです。

conoha wingへの最新バージョンのPythonのインストール

 最初の状態でも、Pythonは使えるようになっているはずです。試しに、「python –version」でバージョンを確認してみます。Python 3.6.11が入っているようです。試しに使ってみます。ちゃんと起動できるようです。

[cxxxxxxxx@web0yyy ~]$ python --version
Python 3.6.11
[cxxxxxxxx@web0yyy ~]$ python
Python 3.6.11 (default, Aug 11 2020, 06:48:17)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 4
>>> b = 5
>>> print(a**b)
1024
>>>

 今日は、クライアントの環境と同じPython 3.9.7をインストールしてみます。Python公式のホームページ(https://www.python.org/)からインストーラーのtgzファイルのURLを取得する。

 https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz

 それでは、pythonをインストールするディレクトリを、サーバーに作っておきます。ここでは、ホームディレクトリの下に、「work」のディレクトリを作って、その中に「python3」のディレクトリを作って、ここにインストールすることにします。ディレクトリを作って、その中に移動したら、wgetコマンドを使って、サーバーにダウンロードしてみます。wgetの後の「–no-check-certificate」は、wgetでsslのついたページにアクセスするときは必要みたいです。ダウンロードしたいディレクトリに入って、

 wget –no-check-certificate [ダウンロード先のファイルのURL]

で、tgzファイルをダウンロードできます。

[cxxxxxxxx@web0yyy ~]$ mkdir -p ~/work/python3
[cxxxxxxxx@web0yyy ~]$ cd ~/work/python3
[cxxxxxxxx@web0yyy python3]$ wget --no-check-certificate https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz
--2022-05-16 22:43:03--  https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz
Resolving www.python.org (www.python.org)... 151.101.228.223, 2a04:4e42:36::223
Connecting to www.python.org (www.python.org)|151.101.228.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 25755357 (25M) [application/octet-stream]
Saving to: 'Python-3.9.7.tgz'

100%[======================================================================>] 25,755,357  --.-K/s   in 0.08s

2022-05-16 22:43:03 (322 MB/s) - 'Python-3.9.7.tgz' saved [25755357/25755357]

[cxxxxxxxx@web0yyy python3]$ ls
Python-3.9.7.tgz

 次に、tgzファイルをtarで解凍し、できたPython-3.9.7のディレクトリに移動して、configureのスクリプトで~/local/pythonをインストール先に指定して、Makefileを作成します。引き続いて、makeでコンパイルして, make installでインストールを実行していけば、指定ディレクトリの下にインストールされます。(すみません。詳細メッセージをコピーしていなかったので、そのあたりは実行して確認してください。成功したら、xxx successful みたいなメッセージが出たと思います。)

[cxxxxxxxx@web0yyy python3]$ cd ./Python-3.9.7
[cxxxxxxxx@web0yyy Python-3.9.7]$ ./configure --prefix=$HOME/local/python/ --with-system-ffi LDFLAGS="-L $HOME/local/lib/" CPPFLAGS="-I $HOME/local/include/"
 ......
[cxxxxxxxx@web0yyy Python-3.9.7]$ make
 ......
[cxxxxxxxx@web0yyy Python-3.9.7]$ make install
 ......

 ちゃんとインストールされているのを確認してみます。

[cxxxxxxxx@web0yyy ~]$ ./local/python/bin/python3 --version
Python 3.9.7
[cxxxxxxxx@web0yyy ~]$ ./local/python/bin/python3
Python 3.9.7 (default, May 14 2022, 23:34:15)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('Hello, world')
Hello, world
>>>

Python 3.9.7がインストールできました。

PythonのPATHの設定

 さきほどインストールしたPython 3.9.7のPATHを通してやります。ホームディレクトリ直下の「.bash_profile」を確認すると、ここでPATHの初期設定をしているようです。

[cxxxxxxxx@web0yyy ~]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH
[cxxxxxxxx@web0yyy ~]$

 PATHの最後に~/local/python/binを追加してやります。(編集はviでもできるが、タカはviの使い方に自信がないので、ftpで上書きしました。。。)

[cxxxxxxxx@web0yyy ~]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/local/python/bin

export PATH
[cxxxxxxxx@web0yyy ~]$

 ターミナルを再起動すると、PATHが通っていました。

[cxxxxxxxx@web0yyy ~]$ which python3
~/local/python/bin/python3
[cxxxxxxxx@web0yyy ~]$

 次回から実際にPythonでコードを書いていってみます。いろいろ変なところはあるかもしれませんが、すみません。。。

コメント