Flask-mongoengine:无法从 flask-mongoengine 导入 MongoEngine
Flask-mongoengine: Unable to import MongoEngine From flask-mongoengine
我一定是遗漏了什么,但我环顾四周,找不到关于这个问题的参考资料。
我有非常基本的代码,如 flask-mongoengine 文档中所示。
test.py:
from flask import Flask
from flask_mongoengine import MongoEngine
当我运行
python test.py
...
from flask_mongoengine import MongoEngine
ImportError: cannot import name 'MongoEngine'
虚拟环境中的模块包含 (requirements.txt):
click==6.7
Flask==1.0.2
flask-mongoengine==0.9.5
Flask-WTF==0.14.2
itsdangerous==0.24
Jinja2==2.10
MarkupSafe==1.0
mongoengine==0.15.3
pymongo==3.7.1
six==1.11.0
Werkzeug==0.14.1
WTForms==2.2.1
我的翻译器是Python3.6.5
任何帮助,将不胜感激。谢谢
自从您使用虚拟环境后,您是否尝试过从虚拟环境中打开您的编辑器?
例如,从命令行打开 vscode 编辑器是 "code"。通过终端转到您的虚拟环境并激活,然后在您的提示符下键入 "code"。
terminal:~path/to/virtual-enviroment$ source bin/activate
(virtual-enviroment)terminal:~path/to/virtual-enviroment$ code
如果这不起作用,我自己还没有使用过 flask-mongoengine。我担心抽象它会产生任何问题,而是将 Mongoengine 与 Flask 结合使用。
我假设您仅将此库用于连接管理,因此如果您无法使用 flask-mongoengine 解决问题但仍然对使用 mongoengine 感兴趣,这就是我的方法。 ~
我会把它放在某个配置文件中并在适当的地方导入它-
from flask import Flask
MONGODB_DB = 'DB_NAME'
MONGODB_HOST = '127.0.0.1' # or whatever your db address
MONGODB_PORT = 27017 # or whatever your port
app = Flask(__name__) # you can import app from config and it will keep its configurations
然后我会像这样在每个 HTTP 请求函数中连接和断开与数据库的连接-
from config import MONGO_DB, MONGODB_HOST, MONGODB_PORT
# to connect
db = connect(MONGODB_DB, host=MONGODB_HOST, port=MONGODB_PORT)
# to close connection before any returns
db.close()
希望这对您有所帮助。
我遇到了这个问题并设法通过停用、重新安装 flask-mongoengine 并重新激活 venv 来解决它(全部在终端中):
deactivate
pip install flask-mongoengine
# Not required but good to check it was properly installed
pip freeze
venv\Scripts\activate
flask run
我一定是遗漏了什么,但我环顾四周,找不到关于这个问题的参考资料。
我有非常基本的代码,如 flask-mongoengine 文档中所示。 test.py:
from flask import Flask
from flask_mongoengine import MongoEngine
当我运行
python test.py ...
from flask_mongoengine import MongoEngine
ImportError: cannot import name 'MongoEngine'
虚拟环境中的模块包含 (requirements.txt):
click==6.7
Flask==1.0.2
flask-mongoengine==0.9.5
Flask-WTF==0.14.2
itsdangerous==0.24
Jinja2==2.10
MarkupSafe==1.0
mongoengine==0.15.3
pymongo==3.7.1
six==1.11.0
Werkzeug==0.14.1
WTForms==2.2.1
我的翻译器是Python3.6.5 任何帮助,将不胜感激。谢谢
自从您使用虚拟环境后,您是否尝试过从虚拟环境中打开您的编辑器? 例如,从命令行打开 vscode 编辑器是 "code"。通过终端转到您的虚拟环境并激活,然后在您的提示符下键入 "code"。
terminal:~path/to/virtual-enviroment$ source bin/activate
(virtual-enviroment)terminal:~path/to/virtual-enviroment$ code
如果这不起作用,我自己还没有使用过 flask-mongoengine。我担心抽象它会产生任何问题,而是将 Mongoengine 与 Flask 结合使用。
我假设您仅将此库用于连接管理,因此如果您无法使用 flask-mongoengine 解决问题但仍然对使用 mongoengine 感兴趣,这就是我的方法。 ~
我会把它放在某个配置文件中并在适当的地方导入它-
from flask import Flask
MONGODB_DB = 'DB_NAME'
MONGODB_HOST = '127.0.0.1' # or whatever your db address
MONGODB_PORT = 27017 # or whatever your port
app = Flask(__name__) # you can import app from config and it will keep its configurations
然后我会像这样在每个 HTTP 请求函数中连接和断开与数据库的连接-
from config import MONGO_DB, MONGODB_HOST, MONGODB_PORT
# to connect
db = connect(MONGODB_DB, host=MONGODB_HOST, port=MONGODB_PORT)
# to close connection before any returns
db.close()
希望这对您有所帮助。
我遇到了这个问题并设法通过停用、重新安装 flask-mongoengine 并重新激活 venv 来解决它(全部在终端中):
deactivate
pip install flask-mongoengine
# Not required but good to check it was properly installed
pip freeze
venv\Scripts\activate
flask run