Python存在__init__.py仍报ModuleNotFoundError模块导入问题求助
问题原因与解决方案
核心问题
你编写的from box.boxes import functions导入语句是基于项目根目录(project文件夹)的路径写法,但Python运行时的模块搜索路径(sys.path)默认不会自动包含project根目录,因此无法定位到box包触发报错。
可行解决方案
方案1:调整启动方式(最推荐,无侵入修改)
不要直接进入app目录运行server.py,切换到project根目录后以模块模式启动服务即可:python -m app.server这种方式会自动将当前工作目录(即
project根目录)加入sys.path,可直接识别box包。方案2:临时添加搜索路径(适合快速调试)
在server.py文件的最开头添加以下代码,手动将project根目录加入模块搜索路径:import sys from pathlib import Path # 取server.py所在的app目录的上级目录(即project根目录)加入搜索路径 sys.path.append(str(Path(__file__).parent.parent.resolve()))添加完成后再写导入
box的语句即可正常运行。方案3:安装为开发包(适合长期维护的项目)
在project根目录下编写符合规范的pyproject.toml配置文件,之后执行以下命令以开发模式安装项目:pip install -e .安装完成后,
box和app包会被加入全局Python模块搜索路径,任意位置运行都不会出现导入错误。
内容的提问来源于stack exchange,提问作者Abdul9401
相关产品推荐
相关产品推荐

