Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Non-blocking MongoDB driver for Tornado or asyncio

Project Description
Info:Motor is a full-featured, non-blocking MongoDB driver for Python Tornado and asyncio applications.
Author:A. Jesse Jiryu Davis


Motor presents a callback- or Future-based API for non-blocking access to MongoDB. The source is on GitHub and the docs are on ReadTheDocs.

“We use Motor in high throughput environments, processing tens of thousands of requests per second. It allows us to take full advantage of modern hardware, ensuring we utilise the entire capacity of our purchased CPUs. This helps us be more efficient with computing power, compute spend and minimises the environmental impact of our infrastructure as a result.”

David Mytton, Server Density

“We develop easy-to-use sensors and sensor systems with open source software to ensure every innovator, from school child to laboratory researcher, has the same opportunity to create. We integrate Motor into our software to guarantee massively scalable sensor systems for everyone.”

Ryan Smith, inXus Interactive


$ pip install motor


Motor works in all the environments officially supported by Tornado or by asyncio. It requires:

  • Unix, including Mac OS X. Windows is not supported.
  • PyMongo 3.4 or later.
  • Python 2.6 or later.
  • futures on Python 2.6.
  • backports.pbkdf2 for faster authentication with MongoDB 3.0+, especially on Python older than 2.7.8, or on Python 3 before Python 3.4.

See requirements for details about compatibility.

How To Ask For Help

Issues with, questions about, or feedback for Motor should be sent to the mongodb-user list on Google Groups.

For confirmed issues or feature requests, open a case in Jira in the “MOTOR” project. Please include all of the following information:

  • Detailed steps to reproduce the problem, including your code and a full traceback, if possible.

  • What you expected to happen, and what actually happened.

  • The exact python version used, with patch level:

    $ python -c "import sys; print(sys.version)"
  • The exact version of PyMongo used:

    $ python -c “import pymongo; print(pymongo.version); print(pymongo.has_c())”

  • The exact Tornado version, if you are using Tornado:

    $ python -c "import tornado; print(tornado.version)"
  • The operating system and version (e.g. RedHat Enterprise Linux 6.4, OSX 10.9.5, …)


Motor’s documentation is on ReadTheDocs.

Build the documentation with Python 3.5. Install sphinx, Tornado, and aiohttp, and do cd doc; make html.


See the examples on ReadTheDocs.


Run python test. Tests are located in the test/ directory. In Python 2.6, unittest2 is automatically installed.

Release History

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
motor-1.1.tar.gz (137.9 kB) Copy SHA256 Checksum SHA256 Source Nov 30, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting