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 of helpful tools that we recommend for prototyping Python applications that use Twilio: ngrok and the Twilio Python SDK.

Let’s get started!


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

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

Twilio’s Python server-side SDK supports Python versions 3.6+.

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

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



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

Before we can start our Python project, we’ll need something to write it with.

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.
  • Visual Studio Code is another text editor that's free, easy to set up, and available on all platforms.
  • PyCharmはPython用の完全な統合開発環境 (IDE = Integrated Development Environment) です。セットアップに多少時間はかかりますが、すでにインストール済みの便利なツールが比較的多く含まれています。
  • Python Tools for Visual StudioはすでにVisual Studioをお使いのユーザーには有力な選択肢です。
  • Vim is a perennial favorite text editor among advanced users

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


Before starting any new Python project, we should create a virtual environment for it.

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

If you have Python 3.3 or above you don't need to install anything – the standard library provides virtualenv under the module "venv".

If you have an older version, you'll need to install this Python utility which allows 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"

# Python 3.3+
$ python -m venv myproject

# Python pre 3.3
$ 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をインストールする


# 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

If later on, you wish to install this same set of dependencies again, you can install them from this file with the following command:

pip install -r requirements.txt


We can test that our development environment is configured correctly by creating a simple Flask application. We’ll grab the nine-line example from Flask’s homepage and drop it in a new file called app.py.

from flask import Flask
app = Flask(__name__)

def hello():
  return "Hello World!"

if __name__ == "__main__":

We can then try running our new Flask application with the command python app.py. You can then open http://localhost:5000 in your browser, and you should see the “Hello World!” response.

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

The Django Alternative

While Flask is a micro-framework that can be extended with various libraries, Django is another popular web framework that provides a lot more out of the box. If you're interested in using Django, we recommend following their guides to get started with it.

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.


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:


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!" メッセージがご覧いただけるはずです。



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:




Andrew Baker David Prothero Kevin Whinnery Kat King Samuel Mendes Paul Kamp Maria Bermudez Jennifer Mah


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



        Please select the reason(s) for your feedback. The additional information you provide helps us improve our documentation:

        Sending your feedback...
        🎉 Thank you for your feedback!
        Something went wrong. Please try again.

        Thanks for your feedback!

        Refer us and get $10 in 3 simple steps!


        Get link

        Get a free personal referral link here


        Give $10

        Your user signs up and upgrade using link


        Get $10

        1,250 free SMSes
        OR 1,000 free voice mins
        OR 12,000 chats
        OR more