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:
- ngrok or some other way to expose a URL for webhooks
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:
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
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
virtualenv for the correct version of Python on your computer. Open a terminal and run the following command:
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:
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:
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
pip install virtualenv
How to deal with installation errors
If you get any
permission denied errors, try running
sudo python instead of
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
easy_install program to your
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.
On Windows, use
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:
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
bin/pip install -r requirements.txt
Start Flask’s web server
Create a file called
run.py and add these lines to it:
from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run(debug=True)
Now run it. In your terminal, type:
You should see the output:
* Running on http://127.0.0.1:5000/
Navigate to http://localhost:5000 in a browser. You should see a “Hello World” message.
You now have everything you need to start using Twilio and Python! Let’s start coding.
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.