目次
はじめに
はじめに Pythonの開発現場ではDockerなどの仮想環境を用いることが多いと思いますが、実際にwebサービスなどの運用を始める際はPythonのインストール、環境構築が必要になってくる場合もあります。 今回は[…]
Windows10
Docker Desktop
Ubuntu 22.10
Python 3.11.0
Dockerについて
今回も前回に引き続き、Dockerのコンテナ上にUbuntu 22.10を作成して、そこにPythonをインストールしていきます。
インストール先は、実機のUbuntuでもWSLでも同じ手順となります。
はじめに プログラミングを行う際に実行環境を構築する必要がありますが、普段利用しているローカルPCに直接インストールしてしまっては、トライアンドエラーを繰り返すうちに不要なアプリケーションが積み重なり動作が不安定にな[…]
はじめに Windows環境でLinuxのコマンドが利用できるWSL2についてインストールおよび利用方法を説明します。 Linuxコマンドが使えるようになると、様々なプログラミング言語や開発に利用できますので非常に[…]
Python仮想環境(venv)の構築
まず、Pythonの仮想環境を構築するうえで、仮想環境のディレクトリ構成をどうするか考えましょう。
プロジェクトや機能単位で仮想環境を作成することが主だと思いますので、今回は以下のように作成します。
home/
`-- username/
`-- py_venvs/
|-- py1/
| `-- .venv1/
`-- py2/
`-- .venv2/
ディレクトリ名は任意ですが、例の場合は、py1やpy2が仮想環境の単位となります。
.venv1や.venv2が仮想環境の名前および設定ファイルとなります。
仮想環境の構築手順
まずは、ユーザーのホームディレクトリ/home/ユーザー名/で仮想環境用のディレクトリを作成します。py_venvs/py1を作成&移動し、そこに.venv1という仮想環境を作成します。
mkdir py_venvs
cd py_venvs
mkdir py1
cd py1
python3 -m venv .venv1 #.venv1という仮想環境を作成
仮想環境の切り替え
上記で作成した仮想環境.venv1ですが、今のままで実行対象となっていないため切り替えを行う必要があります。
仮想環境の切り替えは、設定ファイル.venv1の中にあるactivateをsourceで実行します。
source .venv1/bin/activate
sorceコマンドは、現在のshellで対象ファイルのコマンドを実行することができます。
実行するとプロンプトが以下のように表示されます。
Pythonコードの実行
それでは仮想環境も準備ができたので、実際にPythonのプログラムコードを実行してみます。
vimエディタでhello.pyを作成します。
vim hello.py
Pythonのプログラムコードは以下です。
print("Hello World!")
保存ができたら、以下のコマンドでPythonプログラムを実行する。
python hello.py
Hello World!
実行結果としてコマンドラインに「Hello World!」が出力され、Pythonのプログラムコードが実行されたことが確認できました。
仮想環境へのパッケージインストール
仮想環境に対してもパッケージを追加することができます。
仮想環境でインストール済みのパッケージを確認します。
pip list #仮想環境へインストール済みのパッケージ一覧取得
Package Version
---------- -------
pip 22.3
setuptools 65.5.0
ベース環境をインストールした際に追加したnumpyパッケージが存在しないことがわかります。
そでは、ここに同じくnumpyを追加していきます。
python3 -m pip install -U pip #pipのアップデート
python3 -m pip install numpy #numpyのインストール
pip list #パッケージ一覧を取得
Package Version
---------- -------
numpy 1.23.4
pip 22.3
setuptools 65.5.0
インストール結果を確認するとパッケージ一覧にnumpyが追加されているのがわかります。
numpyを使ったプログラムコードを実行してみます。
vim calc.py
vimでcalc.pyのpythonプログラムコードを開いたら以下のコードを入力します。
import numpy as np #numpyパッケージを利用することの宣言
print("root2 : " + str(np.sqrt(2))) #ルート2
print("e : " + str(np.e)) #自然対数e
print("pi : " + str(np.pi)) #円周率
print("log2 : " + str(np.log(2))) #log2
calc = np.roots([1,2,-8]) #2次方程式
print("X^2+2X-8 : " + str(calc))
実行すると以下の結果が表示される。
python calc.py
root2 : 1.4142135623730951
e : 2.718281828459045
pi : 3.141592653589793
log2 : 0.6931471805599453
X^2+2X-8 : [-4. 2.]
2次関数のほかに連立方程式や行列計算なんかも行うことができます。numpyで計算した値を機械学習のプログラムに流すというような使い方をすることが多いかと思います。
パッケージの削除
仮想環境へインストールしたパッケージを削除するためには以下のコマンドを実行します。
python3 -m pip uninstall numpy #削除
pip list
Package Version
---------- -------
pip 22.3
setuptools 65.5.0
パッケージ一覧からnumpyが削除されていることが確認できます。
仮想環境の終了
選択した仮想環境を終了するためには以下のコマンドを実行します。
deactivate
仮想環境のコピー
現在の仮想環境をコピーして別の仮想環境として構築することができます。
そのため一時的にパッケージをインストールして試したい時など、手軽に利用することができます。
python3 -m pip freeze > env.txt
cat env.txt
numpy==1.23.4
1行目の>はリダイレクトと呼ばれ、左の出力内容を、右にそのまま出力することができます。
この場合は、仮想環境のコピー内容をenv.txtに書き出すことができます。
そのため2行目のcatコマンドでenv.txtを標準出力すると3行目の結果が表示されます。
次に、コピーした内容を別の仮想環境にインストールします。
まずは別の仮想環境を構築・選択します。
cd ../py2 #py2ディレクトリへ移動
python3 -m venv .venv2 #仮想環境.venv2を作成
source .venv2/bin/activate #仮想環境.venv2を選択
(.venv2) root@9a63ac5fd455:~/py_venvs/py2#
仮想環境構築直後のため、パッケージは初期状態のままとなっています。
pip list #パッケージ一覧
Package Version
---------- -------
pip 22.3
setuptools 65.5.0
次に、コピーしたenv.txtをもとにインストールする。
python3 -m pip install -r ../py1/env.txt #env.txtからパッケージをインストール
pip list
Package Version
---------- -------
numpy 1.23.4
pip 22.3
setuptools 65.5.0
numpyがインストールされていることが確認できます。
仮想環境の初期化、削除
仮想環境を初期化するためには以下のコマンドを実行します。
deactivate #仮想環境を起動している場合は終了する
python3 -m venv --clear .venv2 #仮想環境の初期化
初期化されていることを確認します。
pip list
Package Version
---------- -------
pip 22.3
setuptools 65.5.0
numpyがなくなり初期状態になっていることが確認できました。
次に、仮想環境を削除します。削除する場合は、仮想環境のディレクトリを削除するだけでOKです。
deactivate #仮想環境を起動している場合は終了する
rm -rf .venv2 #仮想環境のディレクトリ削除
rmコマンドはファイルおよびディレクトリを削除可能となります。-rオプションはディレクトリの中身すべての階層を削除します。-fオプションはエラー時のメッセージを表示しないで実行します。
まとめ
出版社:インプレス
出版社:オライリージャパン; 第2版
出版社:技術評論社