Flask子进程导入flask_sqlalchemy遇ModuleNotFoundError问题求助
解决子进程无法导入flask_sqlalchemy的问题
核心问题是你启动子进程tracking.py时,调用的Python解释器不是虚拟环境venv里的那个,导致找不到已安装的依赖。以下是具体解决步骤:
先验证解释器路径是否正确
在tracking.py开头添加两行代码:import sys print("子进程使用的Python路径:", sys.executable)运行
app.py后,对比输出的路径和虚拟环境中的Python路径(比如类Unix系统是venv/bin/python,Windows是venv\Scripts\python.exe),如果不一致,就坐实了解释器用错的问题。修改子进程启动命令
不要用默认的python命令启动子进程,要指定虚拟环境内的Python路径:- 类Unix系统(Linux/macOS):
subprocess.run(["./venv/bin/python", "tracking.py"]) - Windows系统:
subprocess.run([".\\venv\\Scripts\\python.exe", "tracking.py"])
更通用的写法是直接复用主进程的Python解释器路径,避免硬编码:
import sys # 用当前app.py使用的Python启动子进程 subprocess.run([sys.executable, "tracking.py"])- 类Unix系统(Linux/macOS):
再次确认依赖安装状态
激活虚拟环境后,执行pip install flask-sqlalchemy确保依赖安装在venv内,再用pip list检查flask-sqlalchemy是否出现在列表中,排除安装到全局环境的情况。
内容的提问来源于stack exchange,提问作者Madd0X
相关产品推荐
相关产品推荐

