ModuleNotFoundError:没有名为“flask_sqlalchemy”的模块,在 app.py 中导入但不在子进程中

问题描述 投票:0回答:1

尝试使用 Flask 作为原型设计方法并遇到一些问题。

基本上,我的 app.py 启动了一个子进程(tracking.py)来执行所有一些用户跟踪。

我有几个值应该时不时地保存到数据库中(我之前使用 .json 这样做过,但认为数据库会更干净)。

这些值都收集在tracking.py中。

现在我确信这是一个菜鸟错误,但是当我导入时

from flask_sqlalchemy import SQLAlchemy

在tracking.py中,我得到一个ModuleNotFoundError:没有名为“flask_sqlalchemy”的模块。

这看起来很奇怪,因为我从 app.py 导入它没有问题:

from flask import Flask, render_template, url_for, send_file
from flask_sqlalchemy import SQLAlchemy
import threading
import atexit
import subprocess

两者都在同一个venv中。

很高兴提供任何进一步的信息,但我认为这是一个愚蠢的疏忽。

我尝试卸载并重新安装(确保我使用 pip3 安装)并查看了 SQLAlchemy 的文档,但可以找到任何有用的内容。

python flask sqlalchemy flask-sqlalchemy
1个回答
0
投票

从你所说的基本上来说,你的子进程(或者准确地说,tracking.py)没有找到该模块。由于重新安装后情况相同,因此最好的办法是检查虚拟环境。 你可以尝试类似的事情

execute = f"source venv/bin/activate && {file}"
subprocess.run(["/bin/bash", "-c", execute], shell=False)

或者只是输出一些环境变量来检查它是否确实在 venv 中运行。

© www.soinside.com 2019 - 2024. All rights reserved.