无法从需要 SUDO 执行的 python 文件导入 mongoengine
cannot import mongoengine from a python file which require SUDO to execute
我想将 mongoengine
导入到需要 sudo
才能执行的 python 文件中,但出现以下错误 ModuleNotFoundError: No module named 'mongoengine'
。我尝试了以下方法:
1/ 在终端我已经打开 python shell 并写入 pip show mongoengine
并且它可以检测版本和位置这意味着库已正确安装。
2/ 我试图通过删除 sudo required part
来 运行 代码,然后代码也已执行。
使用 sudo python3 pyfile_name.py
导致问题的重点是什么。
我在 Flaks 环境中使用它。下面我给出示例代码。
mongo_data.py
from mongoengine import *
from random import random, randint
connect(
db='db_name',
host='localhost',
port=27017
)
class Mongo_User(Document):
user_id = SequenceField(primary_key=True)
json_data = DictField()
meta = {'collection': "col_name"}
app.py
from flask import Flask, render_template, request, Response
from flask import jsonify
from mongo_data import *
app = Flask(__name__)
app.static_folder = os.path.abspath("templates/static/")
@app.route('/get_json_for_form')
def parse_get_json_for_form(name=None):
user = Mongo_User()
json_data = {"name":"xyz"} # sample data
user.json_data = json_data
user.save()
return jsonify(json_data)
在我的例子中,app.py
必须是 运行 和 sudo python3 app.py
,我猜这是导致问题的原因。任何解决这个问题的想法都非常值得赞赏。
通过关注 this comment 得到了答案。刚刚用过
sudo -E python3 app.py
另一种方法也找到了但不推荐
sudo python3 -m pip install mongoengine
我想将 mongoengine
导入到需要 sudo
才能执行的 python 文件中,但出现以下错误 ModuleNotFoundError: No module named 'mongoengine'
。我尝试了以下方法:
1/ 在终端我已经打开 python shell 并写入 pip show mongoengine
并且它可以检测版本和位置这意味着库已正确安装。
2/ 我试图通过删除 sudo required part
来 运行 代码,然后代码也已执行。
使用 sudo python3 pyfile_name.py
导致问题的重点是什么。
我在 Flaks 环境中使用它。下面我给出示例代码。
mongo_data.py
from mongoengine import *
from random import random, randint
connect(
db='db_name',
host='localhost',
port=27017
)
class Mongo_User(Document):
user_id = SequenceField(primary_key=True)
json_data = DictField()
meta = {'collection': "col_name"}
app.py
from flask import Flask, render_template, request, Response
from flask import jsonify
from mongo_data import *
app = Flask(__name__)
app.static_folder = os.path.abspath("templates/static/")
@app.route('/get_json_for_form')
def parse_get_json_for_form(name=None):
user = Mongo_User()
json_data = {"name":"xyz"} # sample data
user.json_data = json_data
user.save()
return jsonify(json_data)
在我的例子中,app.py
必须是 运行 和 sudo python3 app.py
,我猜这是导致问题的原因。任何解决这个问题的想法都非常值得赞赏。
通过关注 this comment 得到了答案。刚刚用过
sudo -E python3 app.py
另一种方法也找到了但不推荐
sudo python3 -m pip install mongoengine