Poetry包内模块导入失败求助:无法导入recon.config
解决Poetry包中
ModuleNotFoundError: No module named 'recon.config'问题 项目结构确认
你的实际项目结构如下:
mainproject/ └── recon/ ├── pyproject.toml └── recon/ ├── main.py └── config.py
错误原因
直接运行main.py时,Python会将当前脚本所在目录(mainproject/recon/recon/)加入sys.path,但项目根目录(包含pyproject.toml的recon/)不在sys.path中,导致Python无法识别外层recon作为合法包。
解决方案
方法1:以模块方式运行脚本(推荐)
在包含pyproject.toml的recon目录下,执行以下命令:
poetry run python -m recon.main
若已激活虚拟环境,可直接执行:
python -m recon.main
这种方式会自动将项目根目录加入sys.path,Python能正确识别recon包,从而正常导入recon.config。
方法2:手动调整sys.path(临时方案)
若需直接运行main.py,可在脚本开头添加以下代码,手动将项目根目录加入sys.path:
import sys from pathlib import Path # 将包含pyproject.toml的目录加入sys.path sys.path.append(str(Path(__file__).parent.parent))
添加后即可正常执行from recon.config import *。
方法3:确认pyproject.toml配置完整性
确保你的pyproject.toml配置完整,核心配置示例如下:
[tool.poetry] name = "recon" version = "0.1.0" authors = ["你的名字 <你的邮箱>"] [tool.poetry.dependencies] python = "^3.8" # 根据你的Python版本调整 [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" packages = [ { include = "recon" } ]
配置完成后,重新执行安装命令:
poetry -C recon/ install
内容的提问来源于stack exchange,提问作者SiddharthaRT
相关产品推荐
相关产品推荐

