【Python3】UbuntuにPythonをインストールしよう!【プログラミング】

こんにちは。

※前置き長いのでさっさと見たい方はこちら

私はプログラミングをしていますキリッ(唐突)

最近、Ubuntuを20.04 LTSから最新の22.04.1 LTSにアップグレード(クリーンインストール)したのですが

環境構築をする際に、Python3.9.13を共同開発のためaptからいんすこしたのですが

なーぜかpipとpip3コマンドが両方ともPython3.10の方のものが起動しちゃうんですよね。

ここでうーんと一日中頭を悩ませながらゆっくり爆睡していたんですけれども。

そこで私は思い出したんですよ。

「Pythonって、200種類あんねん」

※ネタです。真に受けないでください。

すみません。

話を戻しまして、Ubuntuというのは私達プログラマーがつかうPythonとは別に

「システムが使う専用のPython」ってのがインストールされています。

私がアップグレードする前(20.04 LTS)ではPython2(バージョンは忘れた)が使用されていました。

ですが、22.04.1 LTSではPython3(バージョンは3.10.4)がシステム用途で使われていたんですね。

シラナカッタ

ということでして、そのシステム用途に使われていたPython3.10.4のpipとpip3がデフォルトで使用される設定になっていたので厄介なことになっていたんですね。

はい、それがわかればよろしい。いざ本題へ↓

既存のシステム用Python3を維持したままPython3の別バージョンをインストールする方法(Python3.9.13を例に)

普通にインストールしてしまうと、python3コマンドが置き換わって大変なことになるので

気をつけながら作業します。

と言っても気をつけるのは最後のコマンドなので。ほかはほぼ普通です

事前準備

以下のコマンドで必要なものをインストールしておきます。何も考えずに実行しましょう

sudo apt install build-essential libbz2-dev libdb-dev libreadline-dev libffi-dev libgdbm-dev liblzma-dev libncursesw5-dev libsqlite3-dev libssl-dev zlib1g-dev uuid-dev tk-dev
ShellScript

PythonのソースコードをDL

aptでいいやん。

だめです。試しましたがpip使えませんでした。3.10.4のほうが起動します。ソースコードでやりましょう

Pythonのソースコードの配布ページに飛びまして

画像は3.10のものを使ってるんだぜ

ここから任意のバージョンのPythonをDLします。

Sourceタブの欲しいバージョンのPythonソースコードのURLをコピーして

wget <URL>

DLしたら

tar xJf Python-3.9.13.tar.xz

で、展開します。

Pythonのインストール

cd Python-3.9.13/

cdしましたら

./configure

これを実行するとダーとあなたのPCが頑張ってくれます。

カップ麺が完成しないくらいには遅いのでその間にお手洗いを済ませてください()

make

コンパイルしてくれます。先程はお手洗いを済ませましたので今度はTikTokやYouTube Shortsなどを楽しんで待ちます。

完了しますとここが注意ポイント。

通常ですと

sudo make install

にてインストールできますが、今回はシステム専用のPython3.10.4がPython3コマンドで呼び出せるようになっていますので、それを上書きしてしまわないように以下のコマンドでPython3コマンドは上書きせずPython3.xコマンドを使ってのみ呼び出せるようにします。

sudo make altinstall

「alt」をつけることで、今回の場合はPython3コマンドではPython3.10.4、Python3.9コマンドではPython3.9.13が呼び出せるようになります。

pipを自分でインスコしたPythonのバージョンで実行する方法

かんたんです。

python3.x -m pip install <package>

これで任意のPythonのバージョンにモジュールやライブラリをインストールできます。

※実際に開発をする際、個人的には「venv」などの仮想環境を使用することを推奨しています。
 (venvの使い方の記事は、そのうち書きます)

コメントを残す

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