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

0 投票
1 回答
28 浏览
提问于 2025-04-14 16:27

我在尝试使用Flask来做原型开发,但遇到了一些问题。

简单来说,我的app.py文件启动了一个子进程(tracking.py),这个子进程负责用户追踪。

我有几个值需要定期存入数据库,以便保存(之前我用过.json文件,但觉得用数据库会更整洁)。

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

我知道这可能是个新手错误,但当我在tracking.py中导入

from flask_sqlalchemy import SQLAlchemy

时,出现了一个错误:ModuleNotFoundError: No module named '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的文档,但没有找到任何有用的帮助。

1 个回答

0

根据你说的情况,基本上你的子进程(准确来说是tracking.py)找不到这个模块。既然重新安装后还是这样,最好的办法就是检查一下虚拟环境。你可以试试下面的代码:

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

或者你也可以输出一些环境变量,看看它是否真的在虚拟环境中运行。

撰写回答