Ubuntu20.04 Python開発環境を作る ~その1:pipenvで自分専用のpython実行環境を作る~

 この記事は、Linuxで初めてPythonを使ってみよう、という人向けに、Ubuntu20.04 LTSのデスクトップで自身のPython開発環境を作る手順について説明します。
 自由に使えるLinuxサーバを手に入れたら、デスクトップ上でpythonのアプリケーション開発環境を作ってみましょう!

Ubuntu20.04 Python開発環境を作る
 その1:pipenvで自分専用のpython実行環境を作る(この記事)
 その2:VS Codeのインストール
 その3:VS CodeをPython IDEとして使ってみる

関連マガジン
 自宅にLinuxサーバを構築しよう

1.Ubuntu組み込みのPython

 Ubuntu20.04 LTSには、Python3.8のプログラム実行環境が最初から組み込まれています。構成の把握も兼ねて、まずはこれをみてみましょう。

 Ubuntuデスクトップから「端末」アプリを起動し、Ubuntu組み込みのpythonインタープリタのインストール先をwhichコマンドで確認してみます。

$ which python3
/usr/bin/python3
$ cd /usr/bin
$ ls -l |grep python
lrwxrwxrwx 1 root root          23  5月 27 22:30 pdb3.8 -> ../lib/python3.8/pdb.py
lrwxrwxrwx 1 root root          31  6月  6 15:22 py3versions -> ../share/python3/py3versions.py
lrwxrwxrwx 1 root root           9  6月  6 15:22 python3 -> python3.8
-rwxr-xr-x 1 root root     5482296  5月 27 22:30 python3.8
$

  OSに組み込まれたpythonの実行環境をそのまま利用することもできますが、あまりお勧めしません。
 pythonプログラミングを始めると、自身が使うpython実行環境に、パッケージやモジュールをたくさんインストールすることになります。したがって、OSに組み込みのpython実行環境を使うと、システムが利用する環境を変えてしまうことになります。

 そこで、自分(自身のユーザアカウント)専用のpythonプログラミング環境を作成して、システムのpython実行環境と分離します。

2.このブログで紹介するPython開発環境

  Python開発環境は、①自分(ユーザアカウント)専用のPythonプログラム実行環境(Python仮想環境ともいいます)と、②デスクトップ上で使うIDE(統合開発環境)で構成します。
 IDEはプログラムの編集、デバッグ、ファイル管理などの機能に、上記①のプログラム実行環境を取り込んで、開発環境全体を統合するアプリケーションソフトです。

 このブログでは、

①Python仮想環境:pipenv
②IDE: VisualStudio Code

でPython開発環境を作る方法について説明します。

Pythonには、"virtualenv"という、Python仮想環境を作成するツールが標準で用意されています。pipenvの方がお手軽に使えるので、この記事ではpipenvによる仮想環境のインストールと使い方を紹介することにします。

3.pipenv:自分専用のPython仮想環境作成

3.1.pipのインストール

 pythonは、外部ライブラリのモジュール(Pythonプログラムファイル)や、パッケージ(複数のモジュールやデータファイル、サブパッケージで構成されるディレクトリ)を、"pip"というツールを使って管理します。pipenvは、pipを使ってインストールします。

pipがインストールされているか確認

$ which pip
$ which pip3
$

 pipはインストールされていません。まずは上記で説明したUbuntu組み込みのpython実行環境に、pipをインストールします。

$ sudo apt update
$ sudo apt install python3-pip

pipがインストールされたことを確認

$ pip --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)

 

3.2.pipenvのインストール

 早速pipを使って、Ubuntu組み込みのpython実行環境に、pipenvをインストールします。

$ pip install pipenv
Collecting pipenv
 Downloading pipenv-2021.5.29-py2.py3-none-any.whl (3.9 MB)
    |████████████████████████████████| 3.9 MB 3.1 MB/s 
Collecting virtualenv
:
中略
:
  WARNING: The script virtualenv is installed in '/home/ogs-digilife/.local/bin' which is not on PATH.
 Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
 WARNING: The script virtualenv-clone is installed in '/home/ogs-digilife/.local/bin' which is not on PATH.
 Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
 WARNING: The scripts pipenv and pipenv-resolver are installed in '/home/ogs-digilife/.local/bin' which is not on PATH.
 Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed appdirs-1.4.4 distlib-0.3.2 filelock-3.0.12 pipenv-209 virtualenv-20.4.7 virtualenv-clone-0.5.4
$

 インストールは成功しましたが、警告がでました。
 pipenvは/home/ogs-digilife/.local/bin(以下、~/.local/bin)にインストールされたが、そのディレクトリにパスが通ってないと警告しています。
 パスを通さなくてもpipenvの実行はできるので、ここは警告を無視。pipenvの実行方法は後述します。

3.3.pipenvを使ったPython仮想環境の作成

 インストールが完了したので、次はホームディレクトリ配下の任意の場所に、Python仮想環境用のディレクトリを作成します。ディレクトリ名も任意です。ここではpipenv1としました。

$ cd ~
$ mkdir pipenv1

 作成したディレクトリに移動し、pipenvコマンドを実行してこのディレクトリ配下にpython仮想環境を作成します。仮想環境の作成はpipenvコマンドを使います。本記事の説明ではpipenvにパスを通さなかったので、Ubuntu組み込みのPythonインタープリタでpipenvコマンドを実行します。

$ cd ~/pipenv1
$ python3 -m pipenv --python python3 install
Creating a virtualenv for this project...
:
中略
:
$ ls -al
合計 16
drwxrwxr-x  2 ogs-digilife ogs-digilife 4096  612 08:50 .
drwxr-xr-x 20 ogs-digilife ogs-digilife 4096  612 07:47 ..
-rw-rw-r--  1 ogs-digilife ogs-digilife  138  612 08:50 Pipfile
-rw-r--r--  1 ogs-digilife ogs-digilife  453  612 08:50 Pipfile.lock

 これでpython仮想環境を~/pipenv1配下に作成できました。
 pipenvのオプション"--python"では、この仮想環境がどのPythonインタープリタを使うか、インタプリタのパスで指定しています。ここでは、--pythonオプションでpython3、すなわち、Ubuntu組み込みのPythonインタープリタを指定しています("python3"にはすでにOSでパスが通されている)。
 このため、上記で作成したpipenvのpython仮想環境は、Ubuntu組み込みのインタープリタを共有することになります。しかし、仮想環境にインストールするパッケージやモジュールはUbuntu組み込みのPython実行環境とは完全に分離されます。

 ls -lコマンドで、~/pipenv1ディレクトリのファイルを見てみます。Pipfile、Pipflie.lockの2つのファイルが作成されています。このファイルが上記コマンドで作成したpython仮想環境の設定ファイルです。

3.4.pipenv shell:Python仮想環境への切り替え

 上記で作成したPython仮想環境を利用してみましょう。
 仮想環境を作成しただけでは、pythonの実行環境はまだUbuntu組み込みの環境のままです。Python実行環境を上記で作成した仮想環境に切り替えるためには、Python仮想環境のフォルダ(~/pipenv1)に移動し、python3 -m pipenv shellコマンドを実行します。

$ cd ~/pipenv1
$ python3 -m pipenv shell
Launching subshell in virtual environment...
ogs-digilife@br0-ubuntu20:~/pipenv1$  . /home/ogs-digilife/.local/share/virtualenvs/pipenv1-XX6L_UdI/bin/activate
(pipenv1) $

 シェルプロンプトの前に、(<Python仮想環境のディレクトリ名>)が表示されたら、このシェルのPython実行環境が、上記で作成したPython仮想環境に切り替わっています。

Python実行環境が仮想環境に切り替わっているときも、python関連以外のシェルコマンドは切り替え前と全く同じように利用することができます。

 python仮想環境の情報を確認してみましょう。

(pipenv1) $ which python
/home/ogs-digilife/.local/share/virtualenvs/pipenv1-XX6L_UdI/bin/python
(pipenv1) $ which pip
/home/ogs-digilife/.local/share/virtualenvs/pipenv1-XX6L_UdI/bin/pip
(pipenv1) $ pip freeze
(pipenv1) $

 自分のホームディレクトリ配下のpythonインタープリタ("python")と"pip"にパスが通っています。これが"~/pipenv1"ディレクトリに作成したpythonの実行環境です。
 pip freezeはインストール済みの外部パッケージのリストを表示するコマンドです。上記例では、まだ何もインストールしていないので何も表示されていません。
 Python仮想環境で"pip"を使って外部ライブラリをインストールした場合、これらのライブラリはこの仮想環境の中だけにインストールされ、他のPython実行環境には一切影響を与えません。

 Python仮想環境に入ったシェルからPythonコードを実行すると、仮想環境でコードが実行されます。上記のとおり、仮想環境のPythonインタープリタにすでにパスが通っているので、以下のようにプログラムファイルのパスを指定して実行することができます。

(pipenv1) $ python ~/path/to/hello-world.py
hello-world
(pipenv1) $

 切り替えたPython仮想環境から抜け出して元のOS組み込みの環境に戻るときは、exitコマンドを使います。exitコマンドは任意のディレクトリで実行できます。

(pipenv1) $ exit
exit
$ 

 Python仮想環境は、同じユーザのホームディレクトリ配下でも、上記で説明した方法で、いくつでも作ることができます。作成するPythonアプリケーションの種類に応じて複数の環境を使い分けけることもできます。
 python3 -m pipenv shellとexitコマンドだけ覚えておけば良いので、お手軽ですね。

 次の記事では、PythonのIDEとして利用するMicrosoft社のVisual Studio Code(vscode)のインストールと初期設定を説明します。






この記事が気に入ったらサポートをしてみませんか?