Compnet

仕事とか遊びとか、日々折々

2019-05-18(土)

Pyramid のお勉強

Posted by Nakane, R. in technical   

Web サービスを自分でも作れるようにと Pyramid を勉強することにしました。 この Pyramid はいうまでもないことですがエジプトにある石積みの建造物ではありません。 Python で作られた Web フレームワークを指しています。 あまたある Web フレームワークの中から Pyramid を選んだのは、単純に筆者の趣味でそれ以外の意味はありません。 ということでしばらくは、Pyramid のドキュメント サイトにある Quick Tutorial を進めつつ、自身の学習のまとめとして気付いた点を書いていこうと思います。

まずは Quick Tutorial の Contents の最初の Requirements セクションから始めます。

事前準備

Requirements は「必要条件」の意味ですが「事前準備」と捉えるのがよさそうです。 ここでは Piramid を動かすための Python のインストールと仮想環境の構築を行います。

PYthon でプログラムを動かすときに、そのプログラムが別のパッケージを使って作られていることがほとんどです。 別のパッケージというのが Python の標準パッケージであればいいのですが、使われているのパッケージの多くで追加インストールが必要だったりします。 しかしそのパッケージは別のプログラムでは不要かもしれませんし、そのパッケージがインストールされているために必要な別のパッケージがインストールできないということもあります。 このようなときに、他のプログラムを気にせず必要なパッケージを好き勝手にインストールできる、そのプログラム専用の Python の実行環境が欲しくなります。 こういったある特定のプログラムのための Python 実行環境を実現する仕組みが (Python の) 仮想環境です。

Python3 のインストール

Pyramid の Quick Tutorial では venv モジュールを使って Python の仮想環境を作り、それを使います。 今回は Windows 10 に Python をインストールしてから、Pyramid 用の仮想環境を作ります。

Quick Tutorial の Requirements には Python のバージョンは 3.7 を使えとあるので、まずはこれをインストールします。 Windows 10 に Pythoen3 をインストールする手順は Python Japan の Web サイトやその他の多くの Web ページに丁寧に書かれてるので、ここでは省略します。 この記事の執筆時点での Python の最新バージョンは 3.7.3 です。

チュートリアルのためのフォルダーを作成

次に Quick Tutorial で使うフォルダーを作成します。 この手順の後でこのフォルダーの中に Pyramid 用の Python の仮想環境を作ります。 Requirements には以下のフォルダー階層が例示されていますが、これは Linux 向けであり Windows では不適切な気がします。

~
└── projects
    └── quick_tutorial
        ├── env
        └── step_one
            ├── intro
            │   ├── __init__.py
            │   └── app.py
            └── setup.py

また、Windows でフォルダー階層を作るためのコマンドも例示されていますが、これをそのまま実行すると以下のように C: ドライブや D: ドライブのドライブ ルートにフォルダーを作るため、あまり気持ちが良いとはいえません。

C:\ or D:\, ...
└── projects
    └── quick_tutorial
        ├── env
        └── step_one
            ├── intro
            │   ├── __init__.py
            │   └── app.py
            └── setup.py

階層は深くなりますが、以下のようにしてドキュメント フォルダーに Python_Piramid フォルダーを作り、それを projects フォルダーの代わりに使うことにします。

mkdir "%USERPROFILE%\Documents\Python_Piramid\quick_tutorial"

ドキュメント フォルダーに Python_Piramid フォルダーを作って projects フォルダーの代わりにしたときのフォルダー階層は、以下のようになるはずです。

%USERPROFILE%
└── Documents
    └── Python_Piramid
        └── quick_tutorial
            ├── env
            └── step_one
                ├── intro
                │   ├── __init__.py
                │   └── app.py
                └── setup.py

環境変数に登録

フォルダーを作ったら次に Python の仮想環境を作りますが、その前に仮想環境の場所を環境変数 VENV に登録しておきます。 仮想環境の場所は上で作ったフォルダーの中にできる env フォルダーです。 登録した環境変数はコマンド プロンプトを閉じると消えてしまうことに注意してください。 コマンド プロンプトを閉じても消えずに、次にコマンド プロンプトでも環境変数を継続して使えるようにする方法もありますが、ここではその方法を採りません。 ただし、チュートリアルの各セクションはここで登録する環境変数が登録済みである前提で書かれているので、チュートリアルを始める前には環境変数 VENV を登録しなおす必要があります。

環境変数 VENV は以下のコマンドで登録します。 Windows ではフォルダーやパスに空白文字を含む、または含みそうなときはこれをダブル コーテーション マークで括りますが、環境変数に登録するときはダブル コーテーション マークは不要です。 ダブル コーテーション マークで括ると、ダブル コーテーション マークがついたそのままで環境変数に登録されてしまい、これを使うときに問題が生じてしまいます。

set VENV=%USERPROFILE%\Documents\Python_Piramid\quick_tutorial\env

仮想環境を作成

仮想環境の場所を環境変数に登録したらこの環境変数を使って Python の仮想環境を作ります。

Windows 版の Python 3.3 以降では py.exe というランチャー ユーティリティが C:Windows フォルダーにインストールされるようになっています。 これによって、環境変数 PATH に Python のインストール フォルダーを追加しなくても手軽に Python を起動でき、複数の異なるバージョンの Python をインストールしても手軽に切り替えて使えます。 ランチャー ユーティリティ使い方は Python の Web サイトの公式ドキュメントを参照してください。

ここでは py.exe ランチャー ユーティリティを使って、仮想環境を作ります。

py -3.7 -m venv "%VENV%"

これで環境変数 VENV に登録したフォルダーに Python 3.7 の仮想環境ができました。

仮想環境のパッケージ ツールを更新

Python の仮想環境を作ったら真っ先に、以下のコマンドで pip と setuputools というふたつのパッケージを最新バージョンに更新します。

"%VENV%\Scripts\pip" install --upgrade pip setuptools

仮想環境を作ったときの pip と setuptools のバージョンによっては、上のコマンドでエラーが出ることがあります。 そんなときは二、三回繰り返して実行するとうまくできることがあります。 または以下のように、pip と setuptools を別々に更新してもいいでしょう。

"%VENV%\Scripts\pip" install --upgrade pip
"%VENV%\Scripts\pip" install --upgrade setuptools

Pyramid をインストール

Python の仮想環境を作り pip と setuptools のふたつのパッケージを最新バージョンにしたら、いよいよ Pyramid をインストールします。 なお、Pyramid は Web サーバーから呼び出して動かすものなので、Web サーバーに相当する Python パッケージの waitres も一緒にインストールします。

Requirements では Pyramid のバージョンを指定してインストールしていますが、本記事執筆時点の最新バージョンを指定しているだけなので、バージョン指定を省略してインストールします。

"%VENV%\Scripts\pip" install pyramid waitress

チュートリアルを始める前に

続いて Tutorial Approach のセクションに進みます。 Tutorial Approach には、チュートリアルを進めるにあたって、事前に知っておくべきことが書かれています。

チュートリアルのソース コードと同じものが git で公開されているとか、チュートリアルの各ステップ毎に Requirements で準備したフォルダーの中にそのステップで使うフォルダーを作るとかが書いてあり、チュートリアルのほとんどのステップで前のステップで使ったフォルダーの内容をコピーして、それを使ってチュートリアルを進めていくということも書いてあります。

また、前のステップからコピーするステップも、コピーしないステップも、そのステップのフォルダーで "%VENV%\Scripts\pip" -e . を実行して仮想環境にチュートリアルのステップをパッケージとしてインストールして動きを試すことも書かれています。 いくつかのステップでは追加のパッケージをインストールする必要があることも書かれています。

チュートリアルの序章

ここから実際のチュートリアルに入ります。 最初のチュートリアルは Prelude、つまり「序章」として Pyramid のアプリケーションをただ単に動かすだけの内容です。 これについては、次の記事で書きます。

Comments