How to Set up a Local Python Development Environment

Our quickstarts are designed to get you working with Twilio in record time. We’ve used the same Python ingredients time and time again so you only need to go through environmental setup once.

To complete the Twilio Python quickstarts, you’ll need to have the following tools installed:

  • Python
  • Flask
  • The twilio-python library
  • ngrok or some other way to expose a URL for webhooks

Install Python

If you are on a Mac or Linux machine, you most likely already have Python installed. Windows users can follow this excellent tutorial. There are more advanced configuration instructions at the official Python website.

Install Flask and twilio-python

Flask is a super web server written in Python. We’re going to use it for this tutorial. To install it, we are first going to install two tools: pip and virtualenv.

A brief introduction to Python packages

Many third-party Python libraries, such as the math library numpy, the MySQL connector library MySQL-python, and Flash, are made available as “packages”. They are installed using a “package manager”. Most Python developers prefer to use a package manager called pip, but easy_install is another.

A brief introduction to Python virtual environments

virtualenv is a tool that lets you create a special sandbox for each of your Python projects, to ensure that you have exactly the right version of every tool you need for that particular project. Furthermore, virtualenv makes sure that you don’t accidentally break your app if someone updates your Python packages.

Install virtualenv and pip

We first need to make sure that we install pip and virtualenv for the correct version of Python on your computer. Open a terminal and run the following command:

python --version

It should say something like the following:

python --version
Python 3.9.1

Find the instructions below to install virtualenv for the version of Python reported by your terminal.

Install with Python 2.4

Run the following command:

easy_install virtualenv

Install with Python 2.5-2.7

If your Python version is 2.5, 2.6 or 2.7, run easy_install with your Python version number, like this:

easy_install-2.7 virtualenv

Replace the version number 2.7 above with 2.5 or 2.6 if you have that version installed.

Install with Python 3.4 or above

pip is included in Python 3.4+ installations, so just install virtualenv with:

pip install virtualenv

How to deal with installation errors

If you get any permission denied errors, try running sudo python instead of python.

If you get an easy_install-2.5: command not found error, you may need to check that Python is installed, or add the folder containing the easy_install program to your $PATH.

If you get an error that looks like this:

Installing pip script to /usr/local/bin
error: /usr/local/bin/pip: Permission denied

Then you need to run the install script as the admin user, like this:

sudo easy_install-2.6 virtualenv

Create and activate your virtual environment

Once you have virtualenv installed, switch to the directory you’ll use for your tutorial, and create a virtual environment:

cd Documents/my_tutorial_folder
virtualenv --no-site-packages .

Now activate the virtual environment.

source bin/activate

On Windows, use .\bin\activate.bat.

You will need to activate your environment before every session with your Python server.

You can tell your virtual environment is running because your terminal will have the name of the enclosing folder listed above it:

(quickstart)USER:~ user$

Install the packages we need

Now we’re going to install Flask and the twilio-python library. Create a file called requirements.txt and add the following lines to it:


Install these packages with pip:

bin/pip install -r requirements.txt

Start Flask’s web server

Create a file called and add these lines to it:

from flask import Flask
app = Flask(__name__)

def hello():
  return "Hello World!"

if __name__ == "__main__":

Now run it. In your terminal, type:


You should see the output:

* Running on 

Navigate to http://localhost:5000 in a browser. You should see a “Hello World” message.

Where next?

You now have everything you need to start using Twilio and Python! Let’s start coding.

Rate this page:

Need some help?

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.

Thank you for your feedback!

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!