python3 flask应用程序中的pymongo导入错误

sudhishkr

我有一个flask基于python的应用程序,它可以写入mongo数据库。

我正在使用python 3以下requirements.txt

Flask
Jinja2
Werkzeug
certifi
chardet
gunicorn
requests
flask_restful
flask
pymongo

我遇到了这个问题:

Traceback (most recent call last):
File "bin/app.py", line 4, in <module>
from helper import save_message_2_db
File "/app/bin/helper.py", line 1, in <module>
from database import DataAccess, MongoDB
File "/app/bin/database.py", line 1, in <module>
import pymongo
File "/app/.heroku/python/lib/python3.6/site-packages/pymongo/__init__.py", line 83, in <module>
from pymongo.collection import ReturnDocument
File "/app/.heroku/python/lib/python3.6/site-packages/pymongo/collection.py", line 21, in <module>
from bson.code import Code
File "/app/.heroku/python/lib/python3.6/site-packages/bson/code.py", line 19, in <module>
from bson.py3compat import string_type, PY3, text_type
ModuleNotFoundError: No module named 'bson.py3compat'

我试图了解为什么会发生这种情况?

这是我所关心的

File "/app/.heroku/python/lib/python3.6/site-packages/pymongo/__init__.py", line 83, in <module>
from pymongo.collection import ReturnDocument
File "/app/.heroku/python/lib/python3.6/site-packages/pymongo/collection.py", line 21, in <module>
from bson.code import Code
File "/app/.heroku/python/lib/python3.6/site-packages/bson/code.py", line 19, in <module>
from bson.py3compat import string_type, PY3, text_type
ModuleNotFoundError: No module named 'bson.py3compat'

大多数的互联网博客/链接告诉我bsonpymongo不玩好海誓山盟。pymongo有自己的版本,bson我不需要requirements.txt

我正在寻求帮助,以了解为什么会发生这种情况,以及如何使这种情况恶化。


更新#1

我正在使用pymongo-3.5.1,这就是问题仍然存在的地方。我只是降级了pymongo-3.5.0,问题就消失了。

这意味着我知道解决此问题的方法,但是上游代码/程序包存在一些需要修复的问题。

11

可能是某些程序包配置错误。如果bson包来自mongo-python-driver,这很可能,因为在第19行中,存在import语句from bson.py3compat import string_type, PY3, text_type

但是,该文件py3compat.py似乎丢失了,该文件应该code.py位于bson路径的旁边

更新资料

在问题的更新告知我们降级已解决该问题并检查两个版本之间代码更改之后,无法确定该问题的相关更改。因此,它甚至更暗示了模块有问题,这很难说出来。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章