Joh*_*Boy 3 macos ssl mongodb pymongo mongodb-atlas
我已经设置了一个测试 MongoDb Atlas 帐户,只是其中一个免费帐户,并且在我的 Ubuntu 机器上使用以下代码我可以成功创建用户并搜索它们。
当我在 MacBook Air 上尝试完全相同的事情时,我得到了如下所示的 SSL 握手。
pymongo.errors.ServerSelectionTimeoutError: SSL 握手失败: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:833),SSL 握手失败: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:833),SSL 握手失败[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:833)
import pymongo
client = pymongo.MongoClient("mongodb+srv://MYUSERNAME:MYPASSWORD@cluster0-ABCDEF.mongodb.net/test")
db = client.johnny
collection = db.myjohnnytest
example = {'name' : 'Johnny',
'email' : 'johnny@test.net'}
user_id = collection.insert_one(example).inserted_id
Run Code Online (Sandbox Code Playgroud)
我发现这个答案似乎是关键:
但是我已经尝试过这个,无论我是完全遵循它还是激活我的 virtualenv,我都会收到以下错误:
找不到激活的 virtualenv(必需)。回溯(最近一次调用):文件“”,第 44 行,文件“”,第 25 行,主文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py” ,第 291 行,在 check_call 中引发 CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6', '-E', '-s' , '-m', 'pip', 'install', '--upgrade', 'certifi']' 返回非零退出状态 3. 注销 正在保存会话... ...复制共享历史... .. .保存历史...截断历史文件... ...完成。
小智 16
默认情况下,PyMongo 被配置为在启用 TLS 时需要来自服务器的证书。这可以使用 ssl_cert_reqs 选项进行配置。要禁用此要求,请将 ssl.CERT_NONE 作为关键字参数传递:
>>> uri = 'mongodb://example.com/?ssl=true&ssl_cert_reqs=CERT_NONE'
>>> client = pymongo.MongoClient(uri)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4335 次 |
| 最近记录: |