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在Hibernate中从两个具有不同功能的表(postgreSQL)映射一个实体   java jfreechart需要自定义Y轴,以便打印   Java:从外部获取类。罐子   java如何获取Appium服务器日志   具有完全相同内容的java重写函数会导致错误   java消息的类路径是什么。属性(如果在依赖项jar中)   循环/相等的java问题==   java如何使用ionic cordova angularjs将所选图像发送到spring controller以保存到服务器?   库中的java语言环境数据   java从JSON webservice检索安卓中的字节[]   调试如何从Java中的类调试方法?   java将日期字符串切割成变量   无法使用java附加到文件?