导入自定义模块报错:NameError: name 'sqlalchemy' is not defined
问题原因及解决方法
核心问题
你的modules文件夹未被Python识别为合法的包,导致子模块create_engine.py中的import sqlalchemy语句未被正确执行,调用函数时无法找到依赖库的引用。
解决步骤
- 添加
__init__.py文件
在modules文件夹下创建一个空的__init__.py文件,目录结构更新为:
script.py modules: __init__.py create_engine.py otherfunctions.py
这个文件是Python识别文件夹为包的标志,能确保子模块的导入逻辑正常运行。
确认运行路径
运行script.py时,确保当前工作目录是script.py所在的目录(即包含modules的父目录),避免Python无法定位modules包。验证模块加载状态
如果问题仍存在,可在create_engine.py开头添加测试代码(如print("create_engine模块已加载")),运行script.py查看是否输出该内容,确认模块是否被正确加载。
注:无需在script.py中导入sqlalchemy,函数的依赖应由定义它的模块(create_engine.py)自行处理,只要模块被正确加载,内部的import sqlalchemy就会生效。
内容的提问来源于stack exchange,提问作者Tobias
相关产品推荐
相关产品推荐

