libmongocrypt的python绑定

pymongocrypt的Python项目详细描述


Info:Python bindings for libmongocrypt. See GitHub for the latest source.
Author:Shane Harvey

关于

支持客户端加密的libmongocrypt的python包装库 在司机中。pymongocrypt使用cfficryptography

对客户端加密的支持处于测试阶段。向后打破改变 可能在最终版本发布之前制作。

pymongocrypt支持python 2.7、3.4+和pypy3.5+。

支持/反馈

有关pymongocrypt的问题、问题或反馈,请查看 我们的support channels。拜托 不要直接向Pymongocrypt的任何开发人员发送电子邮件,提出问题或 问题-你更有可能在google群组的mongodb-user列表中得到答案。

错误/功能请求

你觉得你发现了虫子?想在Pymongocrypt中看到一个新功能吗? 请在我们的问题管理工具jira中打开一个案例:

jira中所有驱动程序项目(即python、csharp、java)和 核心服务器(即服务器)项目是public

如何寻求帮助

打开问题时请包括以下所有信息:

  • 重现问题的详细步骤,包括完整的回溯(如果可能)。

  • 使用的python版本,补丁级别:

    $ python -c "import sys; print(sys.version)"
    
  • 使用的pymongocrypt的确切版本:

    $ python -c "import pymongocrypt; print(pymongocrypt.__version__)"
    
  • pymongocrypt使用的libbmongocrypt的确切版本:

    $ python -c "import pymongocrypt; print(pymongocrypt.libmongocrypt_version())"
    
  • 使用的pymongo的确切版本(如果适用),补丁级别:

    $ python -c "import pymongo; print(pymongo.version); print(pymongo.has_c())"
    
  • 操作系统和版本(如Windows 7、OSX 10.8,…)

  • Web框架或异步网络库(如果有的话)与版本(例如 django 1.7,mod_wsgi 4.3.0,gevent 1.0.1,tornado 4.0.2,…)

安全漏洞

如果您在驱动程序或任何其他 MongoDB项目,请按instructions here上报。

安装

pymongocrypt可以使用pip

$ python -m pip install pymongocrypt
$ python -c "import pymongocrypt; print(pymongocrypt.libmongocrypt_version())"
1.0.0-beta4

pymongocrypt为macos、windows和manylinux2010提供轮子,其中包括 嵌入的libmongocrypt构建。

从源安装

从源安装(或pymongocrypt-x.y.tar.gz源发行版) 需要安装libmongocrypt的额外步骤。首先,安装 pymongocrypt来源:

$ git clone git@github.com:mongodb/libmongocrypt.git
$ python -m pip install ./libmongocrypt/bindings/python

接下来,安装libmongocrypt。

LibMongocrypt[在Evergreen上持续建造和出版] (https://evergreen.mongodb.com/waterfall/libmongocrypt)。 最新的tarball包含基于所有支持的变体构建的libmongocrypt (在这里发表)[https://s3.amazonaws.com/mciuploads/libmongocrypt/all/master/latest/libmongocrypt-all.tar.gz]。 下载并解压缩libmongocrypt-all.tar.gz并设置 PYMONGOCRYPT_LIB指向操作系统libmongocrypt.so文件的路径。 例如:

$ curl -O https://s3.amazonaws.com/mciuploads/libmongocrypt/all/master/latest/libmongocrypt-all.tar.gz
$ mkdir libmongocrypt-all && tar xzf libmongocrypt-all.tar.gz -C libmongocrypt-all
$ ls libmongocrypt-all
amazon2             rhel-67-s390x       suse12-64           ubuntu1604-s390x
debian92            rhel-70-64-bit      suse12-s390x        ubuntu1804-64
linux-64-amazon-ami rhel-71-ppc64el     suse15-64           ubuntu1804-arm64
macos               rhel72-zseries-test ubuntu1604          windows-test
rhel-62-64-bit      rhel76              ubuntu1604-arm64

Mac操作系统:

$ # Set PYMONGOCRYPT_LIB for macOS:
$ export PYMONGOCRYPT_LIB=$(pwd)/libmongocrypt-all/macos/nocrypto/lib/libmongocrypt.dylib
$ python -c "import pymongocrypt; print(pymongocrypt.libmongocrypt_version())"
1.0.0-beta4

窗口:

$ # Set PYMONGOCRYPT_LIB for Windows:
$ chmod +x $(pwd)/libmongocrypt-all/windows-test/nocrypto/bin/mongocrypt.dll
$ export PYMONGOCRYPT_LIB=$(pwd)/libmongocrypt-all/windows-test/nocrypto/bin/mongocrypt.dll
$ python -c "import pymongocrypt; print(pymongocrypt.libmongocrypt_version())"
1.0.0-beta4

Linux:

$ # Set PYMONGOCRYPT_LIB for RHEL 6.2 x86_64:
$ export PYMONGOCRYPT_LIB=$(pwd)/libmongocrypt-all/rhel-62-64-bit/nocrypto/lib64/libmongocrypt.so
$ python -c "import pymongocrypt; print(pymongocrypt.libmongocrypt_version())"
1.0.0-beta4

依赖关系

pymongocrypt支持cpython 2.7、3.4+、pypypy和pypy3.5+。

pymongocrypt需要cfficryptography

pymongocrypt还要求在 系统。如果没有安装libmongocrypt,您将看到一个错误 像这样:

>>>importpymongocryptTraceback(mostrecentcalllast):File"<stdin>",line1,in<module>File"pymongocrypt/__init__.py",line15,in<module>frompymongocrypt.bindingimportlibmongocrypt_version,libFile"pymongocrypt/binding.py",line803,in<module>lib=ffi.dlopen(os.environ.get('PYMONGOCRYPT_LIB','mongocrypt'))File"/.../lib/python3.7/site-packages/cffi/api.py",line146,indlopenlib,function_cache=_make_ffi_library(self,name,flags)File"/.../lib/python3.7/site-packages/cffi/api.py",line828,in_make_ffi_librarybackendlib=_load_backend_lib(backend,libname,flags)File"/.../lib/python3.7/site-packages/cffi/api.py",line823,in_load_backend_libraiseOSError(msg)OSError:ctypes.util.find_library()didnotmanagetolocatealibrarycalled'mongocrypt'

使用PYMONGOCRYPT_LIB环境变量加载本地安装的 libmongocrypt构建,不依赖于特定于平台的库路径环境 变量,如LD_LIBRARY_PATH。例如:

$ export PYMONGOCRYPT_LIB='/path/to/libmongocrypt.so'
$ python -c "import pymongocrypt; print(pymongocrypt.libmongocrypt_version())"

测试

运行测试的最简单方法是在中运行python setup.py test 分布的根。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java播放流媒体音乐   LWJGL中的java纹理未显示   java从父集合中删除时删除子对象   mysql希望在我的代码中添加验证,如果表不存在,它应该用java创建新表   java我可以关闭客户端的socket而不引起服务器端的EOFEException吗?   java Primefaces对话框框架咆哮和showMessageInDialog不工作   hadoop配置单元无法初始化类java。网网络接口   关键字中缺少oracle11g Java iBatis   java在RESTAPI中创建PUT和POST端点,而不创建GET端点?   java Math abs和ceil输出编译错误   java Tomcat 8.017代md5及其摘要。球棒   java SpringBean配置xml文件在IteliJ Idea中加载   java为什么在使用Powershell指定Xms和Xmx时,它们什么都不做,但通过Netbeans IDE可以正常工作?   java Drools项目构建失败,kjar打包从7.7版开始