メニュー

Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

PythonとFlask開発環境の設定方法

In this guide we’ll cover how to set up your Python development environment for a Flask project. We'll use virtual environments to isolate our dependencies, and pip for package management. Also, we'll talk about a couple helpful tools that we recommend for prototyping Python applications that use Twilio: ngrok and the Twilio Python SDK.

Let’s get started!

Pythonのバージョンの選択

今日広く使用されているPythonのバージョンには2つの異なるバージョンがあります: Python 2とPython 3です。 もしこれからPythonを学ぶ場合、プロジェクトに適したバージョンを選択するのに頭を悩ますかもしれません。

Python 3は2008にはじめてリリースされましたが、一部のPythonコミュニティーは様々な理由で引き続きPython 2を好んでいます。 こちらで、Python 2とPython 3の歴史についてお読みいただけます。

今日では、TwilioのPython SDKを含むほぼすべてのポピュラーなPythonライブラリーは両方のバージョンをサポートしています。 開発者のプロジェクトにとって重要な、Python 2のみに互換性のある特定のライブラリーがない限りは、新規プロジェクトをPython 3を使用して始めることを推奨します。

# Check your Python version
$ python --version
Python 3.5.2

Pythonがすでにシステムにインストールされている場合、 python --version を実行してバージョンを確認できます。

Pythonをインストールする

ご使用のオペレーティングシステムによって、Pythonのインストール方法は異なります。

OperatingSystem Instructions
OS X macOSにはすでにPythonがインストールされていますが、ご自身でPythonのインストールを構成することをお勧めします。 Homebrewが、Python 2または3をmacOSにインストールする際の弊社お勧めのツールです。 詳細な手順についてはこちらでご確認ください
Windows Windows上でPythonをインストールする最良の方法は、Pythonソフトウェア財団からの公式インストーラーを使用することです。 x86 (32-bit) 版がサードパーティーのパッケージでより良い互換性を持っている傾向にあります。
Linux Pythonをインストールする正確な手順については、ディストリビューションによって異なります。 UbuntuCentOS、および他のディストリビューション向けの手順について確認してください。

Install a text editor or IDE

Pythonプロジェクトがスタートできるようになる前に、それを書くものが必要になります。

If you already have a code writing tool of choice, you can stick with it for developing your Python application. If you're looking for something new, we recommend trying out a few options:

  • Sublime Text is a text editor popular for its ease of use and extensibility. Start here if you’re eager to get coding and don’t think you’ll want a lot of frills in your development environment.
  • PyCharmはPython用の完全な統合開発環境 (IDE = Integrated Development Environment) です。セットアップに多少時間はかかりますが、すでにインストール済みの便利なツールが比較的多く含まれています。
  • Python Tools for Visual StudioはすでにVisual Studioをお使いのユーザーには有力な選択肢です。
  • Vim is a perernnial favorite text editor among advanced users

プログラミングがはじめての場合は、Sublime TextとPyCharmをそれぞれ試してみて、お気に入りに落ち着くことをお勧めします。

virtualenvで新規プロジェクトを開始する

新規Pythonプロジェクトをスタースさせる前に、それ用の仮想環境を作成した方が良いでしょう。

仮想環境(Virtual Environments、略して「vertualenv」)は新規プロジェクトのPythonの依存関係を他のプロジェクトおよびオペレーティングシステムが使用するPythonライブラリーから分離します。 仮想環境を使用しない場合、OSの一部を破壊する可能性があります。

Install this Python utility, which will allow you to create and manage Python virtual environments. Use the "virtualenv" command to create a new virtual environment, using its sole argument to name your new environment. The instructions to activate your new virtualenv vary by operating system:

# Create a new virtualenv named "myproject"
$ virtualenv myproject
New python executable in myproject/bin/python
Installing setuptools, pip, wheel...done.

# Activate the virtualenv (OS X & Linux)
$ source myproject/bin/activate

# Activate the virtualenv (Windows)
$ myproject\Scripts\activate

Pythonプロジェクトで作業する際は毎回仮想環境を有効化することが必要です。 まれに、ターミナルセッションを閉じる前にvirtualenvを無効化したい場合、単にdeactivateコマンドを使用してください。

FlaskおよびTwilio Python SDKをインストールする

FlaskのWebアプリケーションを書き始める準備はほぼ整いましたが、まず仮想環境にFlaskライブラリーをインストールすることが必要です。

# Use pip to install the Flask and twilio libraries
$ pip install Flask twilio
Collecting Flask
  Using cached Flask-0.11.1-py2.py3-none-any.whl
Collecting twilio
Collecting click>=2.0 (from Flask)
Collecting itsdangerous>=0.21 (from Flask)
Collecting Werkzeug>=0.7 (from Flask)
  Using cached Werkzeug-0.11.11-py2.py3-none-any.whl
Collecting Jinja2>=2.4 (from Flask)
  Using cached Jinja2-2.8-py2.py3-none-any.whl
Collecting pytz (from twilio)
  Using cached pytz-2016.7-py2.py3-none-any.whl
Collecting six (from twilio)
  Using cached six-1.10.0-py2.py3-none-any.whl
Collecting httplib2>=0.7 (from twilio)
Collecting MarkupSafe (from Jinja2>=2.4->Flask)
Installing collected packages: click, itsdangerous, Werkzeug, MarkupSafe, Jinja2, Flask, pytz, six, httplib2, twilio
Successfully installed Flask-0.11.1 Jinja2-2.8 MarkupSafe-0.23 Werkzeug-0.11.11 click-6.6 httplib2-0.9.2 itsdangerous-0.24 pytz-2016.7 six-1.10.0 twilio-5.6.0

Pythonは依存関係の管理にpipを使用し、開発環境にFlaskとTwilio SDKをダウンロードするコマンドはpip install Flask twilioになります。

依存関係がインストールされ、それらが問題なく動作していることを確認したら、使用している依存関係のバージョンを管理、追跡したくなるでしょう。 Pipは依存関係を「凍結」でき、(慣例的に)requirements.txtと呼ばれるファイルにどのバージョンを使用しているか記録できます。 下記コマンドで必要なファイルを作成します:

pip freeze > requirements.txt

後々この一連の同じ依存関係を再度インストールしたい場合は、このファイルから下記のコマンドを使用してインストール可能です:

pip install -r requirements.txt

簡単なFlaskアプリケーションを作成する

シンプルなFlaskアプリケーションを作成することで、開発環境が正しく構成されているか確認できます。 Flaskのホームページから9行からなるコード例をコピーし、「app.py」という名前の新規ファイルにペーストします。

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

続いてpython app.pyコマンドで、新規Flask Webアプリケーションの実行を試します。そしてブラウザーから http://localhost:5000 にアクセスすれば、"Hello World!"レスポンスが確認できるはずです。

メモ: 開発環境にVagrantのような仮想マシーンを使用している場合、localhostホスト名でFlaskアプリケーションが参照できない可能性があります。 下記のngrokの節で、簡単にこれを解決する方法を見ていきましょう。

Install ngrok

サンプルFlaskアプリケーションの「Hello World!」メッセージがご覧いただけたなら、開発環境の準備は完了です。 しかし、大部分のTwilioプロジェクトにはもうひとつ、ngrokという便利ツールをインストールする必要があります。

Most Twilio services use webhooks to communicate with your application. When Twilio receives an incoming phone call, for example, it reaches out to a URL in your application for instructions on how to handle the call.

ご自身の開発環境でFlaskアプリケーションに取り組む際、アプリケーションは同一のコンピューター上の他のプログラム以外からアクセスできないため、Twilioと通信することができません。

Ngrok is our favorite tool for solving this problem. Once started, it provides a unique URL on the ngrok.io domain which will forward incoming requests to your local development environment.

まずは、ngrokのダウンロード・ページにアクセスして、お使いのオペレーティング・システム向けのバイナリーをダウンロードしましょう。 https://ngrok.com/download

Once downloaded, make sure your Flask application is running and then start Ngrok using this command: "./ngrok http 5000". You should see output similar to this:

ngrokの画面

Look at the “Forwarding” line to see your unique Ngrok domain name (ours is "aaf29606.ngrok.io") and then point your browser at that domain name.

すべて問題がなければ、新しいngrokのURLから表示されたFlaskアプリケーションの "Hello World!" メッセージがご覧いただけるはずです。

Twilioアプリケーション上で作業していて、WebhookのURLが必要になったときはいつでも、ngrokを使用してこのようなパブリックにアクセスできるURLを取得してください。

関連トピック

Nicely done! You've learned about ngrok, pip and virtual environments, and you’re now ready to build out your Flask application.

Ready to build something more substantiate with Twilio? Here are a few other resources we like:

Twilio

Flask

Andrew Baker Kevin Whinnery David Prothero Kat King Paul Kamp

ヘルプが必要ですか?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.

Loading Code Sample...