開発用の環境として、Ubuntu Sever 22.04 LTSにPython + Flask + uWSGI + Nginxをインストールしていきます。
Nginxインストール
Nginxが用意しているリポジトリを使ってインストールを行っていきます。
インストールの詳しい手順は、こちらのページ解説していますので参考にしてみてください。
Pythonインストール
aptを使ってPythonのインストールを行っていきます。
Pythonの仮想環境を作成するためのツールであるvenv(python3.10-venv)とパッケージ管理システムであるpip(python3-pip)もあわせてインストールします。
$ sudo apt update $ sudo apt install python3 $ sudo apt install python3.10-venv $ sudo apt install python3-pip
Pythonの仮想環境について
Pythonで開発を行う場合には仮想環境を作成して、そこで開発を行っていくのが良いとBard先生教えてもらいました。
venvは、Pythonの仮想環境を作成するためのツールです。仮想環境を使うことで、複数のPythonアプリケーションをそれぞれ独立した環境で開発することができます。
それぞれ独立した環境を作成できるということは、ライブラリの競合や、バージョンの違いに起因する問題を防ぐことできます。
これについては、サーバの仮想化と同じようなものなので、すんなりとイメージがつかめました。
フレームワークであるFlaskやWSGIサーバであるuWSGIは、作成した仮想環境ごとにインストールするという形なります。
仮想環境作成
仮想環境は下記のコマンドで作成することができます。
python3 -m venv 仮想環境名
これで、指定した仮想環境名と同じ名前で仮想環境用のディレクトリが作成されます。
作成例
ユーザのホームディレクトリに、project_pyというディレクトリを作成し、その中にHelloWorldという名前で仮想環境を作成します。
$ mkdir project_py $ cd project_py $ python3 -m venv HelloWorld
HelloWorldというディレクトリが作成されました。
$ ls -l total 4 drwxrwxr-x 5 tamohiko tamohiko 4096 Nov 14 23:43 HelloWorld
仮想環境の有効化
作成した仮想環境は、以下のコマンドで有効化させる必要があります。
source 仮想環境名/bin/activate
仮想環境が有効化されると、プロンプトの最初に(仮想環境名)というような表示が追加されます。
有効化の例
実際に先程作成した仮想環境を有効化してみます。
$ source HelloWorld/bin/activate (HelloWorld) $
仮想環境の無効化
有効化した仮想環境を無効化する場合は、以下のコマンドを実行します。
deactivate
無効化例
実際に仮想環境を無効化してみます。
(HelloWorld) $ deactivate $
プロンプトの最初に表示されている(仮想環境名)の表示が消えて、Pythonの仮想環境が無効化されたことが確認できます。
Flaskインストール
PythonのフレームワークであるFlaskを、pipを使って仮想環境にインストールします。
(HelloWorld) $ pip3 install flask
正常にインストールされたのかを確認するためにFlaskのバージョンを確認しておきます。
(HelloWorld) $ flask --version Python 3.10.12 Flask 3.0.0 Werkzeug 3.0.1
uWSGIのインストール
UWSGIサーバであるuWSGIをpipを使って仮想環境にインストールします。
(helloworld) $ pip3 install uwsgi
正常にインストールされたのかを確認するためにuWSGIのバージョンを確認しておきます。
(helloworld) $ uwsgi --version 2.0.23
仮想環境にpipでインストールされたパッケージの確認
仮想環境内にpipでインストールされたパッケージを確認するためにはpip3 listコマンドを使用します。
(helloworld) $ pip list Package Version ------------ ------- blinker 1.7.0 click 8.1.7 Flask 3.0.0 itsdangerous 2.1.2 Jinja2 3.1.2 MarkupSafe 2.1.3 pip 22.0.2 setuptools 59.6.0 uWSGI 2.0.23 Werkzeug 3.0.1
仮想環境を無効化しているときにpip listコマンドを実行して、内容を比べてみるとインストールされているパッケージの違いがわかるので、本当に仮想化されているのだと実感できますね。
コメント