ModuleNotFoundError:没有名为'flask_sqlalchemy'的模块,在app.py中导入但在子进程中没有
我在尝试使用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)
或者你也可以输出一些环境变量,看看它是否真的在虚拟环境中运行。