安装/升级

PyMongo 是在 Python Package Index .

警告

不要从pypi安装“bson”包。 PyMongo附带了自己的bson包;执行“pip install bson”或“easy_install bson”将安装与PyMongo不兼容的第三方软件包。

使用pip安装

我们建议使用 pip 要在所有平台上安装pymongo,请执行以下操作:

$ python -m pip install pymongo

要获取pymongo的特定版本:

$ python -m pip install pymongo==3.5.1

要使用pip升级:

$ python -m pip install --upgrade pymongo

注解

pip不支持以.egg格式安装python包。如果您想从pypi上提供的.egg安装PyMongo,请改用easyu install。

使用easy_install安装

使用 easy_installsetuptools 执行事项:

$ python -m easy_install pymongo

要升级do::

$ python -m easy_install -U pymongo

依赖关系

PyMongo支持cpython2.7、3.4+、PyPy和PyPy3.5+。

可选依赖项:

GSSAPI身份验证需要 pykerberos 关于UNIX或 WinKerberos 在窗户上。正确的依赖项可以与PyMongo一起自动安装:

$ python -m pip install pymongo[gssapi]

MONGODB-AWS系统 身份验证需要 pymongo-auth-aws ::

$ python -m pip install pymongo[aws]

支持mongodb+srv://URIs需要 dnspython ::

$ python -m pip install pymongo[srv]

TLS/SSL支持可能需要 ipaddresscertifiwincertstore 取决于使用的Python版本。必要的依赖项可以与PyMongo一起安装:

$ python -m pip install pymongo[tls]

注解

Python版本早于2.7.9的用户在使用tls extra时也会收到OCSP的依赖关系。

OCSP 要求 PyOpenSSLrequestsservice_identity ::

$ python -m pip install pymongo[ocsp]

使用snappy进行有线协议压缩需要 python-snappy ::

$ python -m pip install pymongo[snappy]

使用zstandard的有线协议压缩需要 zstandard ::

$ python -m pip install pymongo[zstd]

客户端字段级加密 要求 pymongocrypt ::

$ python -m pip install pymongo[encryption]

您可以使用以下命令自动安装所有依赖项:

$ python -m pip install pymongo[gssapi,aws,ocsp,snappy,srv,tls,zstd,encryption]

其他可选软件包:

  • backports.pbkdf2 <https://pypi.python.org/pypi/backports.pbkdf2/> _,使用SCRAM-SHA-1和SCRAM-SHA-256提高了身份验证性能。它特别提高了Python版本2.7.8之前的性能。

  • monotonic 增加了对单调时钟的支持,这提高了在频繁调整时钟的环境中的可靠性。Python3不需要。

从源安装

如果您希望直接从源代码进行安装(即保持在最前沿),请安装C扩展依赖项,然后从GitHub中检查最新源代码并从生成的树中安装驱动程序:

$ git clone git://github.com/mongodb/mongo-python-driver.git pymongo
$ cd pymongo/
$ python setup.py install

在Unix上从源代码安装

要在Linux或其他非macOS Unix上构建可选的C扩展,必须安装gnuc编译器(gcc)。根据您的Unix(或Linux发行版)风格,您可能还需要一个python开发包,它为您的python版本提供必要的头文件。软件包名称可能因发行版而异。

Debian和Ubuntu用户应该发出以下命令:

$ sudo apt-get install build-essential python-dev

基于Red Hat的发行版(RHEL、CentOS、Amazon Linux、Oracle Linux、Fedora等)的用户应发出以下命令:

$ sudo yum install gcc python-devel

从macOS/OSX上的源代码安装

如果你想从源代码安装带有C扩展的PyMongo,你需要命令行开发工具。在现代版本的macOS上,可以通过在终端中运行以下命令来安装它们(位于/Applications/Utilities/):

xcode-select --install

对于旧版本的OSX,您可能需要Xcode。请参阅下面的注释了解各种OSX和Xcode版本。

雪豹(10.6) -具有“UNIX开发支持”的Xcode 3。

雪豹Xcode 4 :OSX 10.6.x附带的Python版本是通用二进制文件。它们支持i386、PPC和x86u64。Xcode4删除了对PPC的支持,如果安装了xcode4,苹果Python版本附带的distutils版本无法构建C扩展。有一个解决办法:

# For some Python builds from python.org
$ env ARCHFLAGS='-arch i386 -arch x86_64' python -m easy_install pymongo

http://bugs.python.org/issue11623 更详细的解释。

Lion(10.7)及更高版本 -PyMongo的C扩展可以针对python2.7>=2.7.4或python3.4+版本进行构建,点击python.org网站. 在任何情况下,Xcode都必须安装“UNIX开发支持”。

Xcode 5.1版 :从5.1版开始,Xcode附带的clang版本在遇到无法识别的编译器标志时抛出错误。这可能导致C扩展生成失败,错误类似于:

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]

有一些解决办法:

# Apple specified workaround for Xcode 5.1
# easy_install
$ ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future easy_install pymongo
# or pip
$ ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install pymongo

# Alternative workaround using CFLAGS
# easy_install
$ CFLAGS=-Qunused-arguments easy_install pymongo
# or pip
$ CFLAGS=-Qunused-arguments pip install pymongo

从Windows上的源安装

如果您想从源代码安装带有C扩展的PyMongo,那么以下要求适用于CPython和ActiveState的ActivePython:

64位Windows

对于Python 3.5及更高版本,请安装Visual Studio 2015。对于python3.4,安装visualstudio2010。您必须使用VisualStudio 2010的完整版本,VisualC++快照不提供64位编译器。请确保在VisualC++中检查“X64编译器和工具”选项。对于python2.7,安装 Microsoft Visual C++ Compiler for Python 2.7 .

32位Windows

对于Python 3.5及更高版本,请安装Visual Studio 2015。

对于Python 3.4安装Visual C++ 2010 Express。

对于python2.7,安装 Microsoft Visual C++ Compiler for Python 2.7

安装时不使用C扩展

默认情况下,驱动程序在安装时尝试构建和安装可选的C扩展(用于提高性能)。如果任何扩展未能构建,驱动程序仍将被安装,但会打印警告。

如果您希望在没有C扩展的情况下安装PyMongo,即使扩展构建正确,也可以使用命令行选项 setup.py ::

$ python setup.py --no_ext install

构建PyMongo鸡蛋包

有些组织不允许在生产系统上使用编译器和其他构建工具。要在这些带有C扩展的系统上安装PyMongo,您可能需要构建定制的egg包。确保已为操作系统安装了上面列出的依赖项,然后在PyMongo源目录中运行以下命令:

$ python setup.py bdist_egg

egg包可以在dist/子目录中找到。文件名类似于“pymongo-3.6-py2.7-linux-x86_64.egg”,但根据您的平台和用于编译的python版本,可能会有不同的名称。

警告

这些“二进制发行版”只能在与构建包的环境相似的系统上工作。换句话说,确保操作系统和Python版本与体系结构(即“32”或“64”位)匹配。

发出以下命令以复制并安装此文件包:

$ sudo python -m easy_install pymongo-3.6-py2.7-linux-x86_64.egg

安装测试版或候选发布版

MongoDB,Inc.可能会偶尔标记一个beta或发布候选版本,供社区在最终发布之前进行测试。这些版本不会上载到pypi,但可以在 GitHub tags page . 它们可以通过将标记的完整URL传递给pip::

$ python -m pip install https://github.com/mongodb/mongo-python-driver/archive/3.11.0rc0.tar.gz