You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Poetry安装脚本后出现ModuleNotFoundError及执行异常问题问询

问题1:执行project命令自动进入内层project目录是否符合预期

原因

该行为不符合Poetry项目脚本的默认预期,核心原因是你当前执行的project命令并非当前Poetry项目生成的启动脚本:
你在pyproject.toml中配置的脚本名为algoex,Poetry只会生成名为algoex的可执行命令,不会生成project命令。你能执行project命令说明你的Shell环境中存在提前定义的同名别名/函数,功能就是进入名为project的目录,和当前Python项目完全无关。

解决方案

  • 检查你的Shell配置文件(如.bashrc/.zshrc),删除名为project的别名或函数
  • 直接使用配置的正确脚本名algoex启动项目,不会出现自动切换目录的问题
  • 如果确实需要用project作为启动命令,可将pyproject.toml中[tool.poetry.scripts]下的algoex改为project,重新执行poetry install即可。

问题2:内层project目录执行命令抛出ModuleNotFoundError: No module named 'db'

原因

报错核心有两点:

  1. 你使用的project命令本身是错误的Shell别名/函数,不是项目的Python启动脚本
  2. 即使使用正确的algoex命令启动,你main.py中的导入写法不符合Python包的导入规则:from db import DB会将db作为顶层模块搜索,不会主动搜索project包下的db模块,因此无法找到对应文件。

解决方案

  • 先修正main.py的导入写法,二选一即可:
    • 推荐使用绝对导入:from project.db import DB
    • 也可以使用包内相对导入:from .db import DB
  • 统一使用algoex命令启动项目,无论在根目录还是内层project目录下执行均可正常加载模块。

内容的提问来源于stack exchange,提问作者edmamerto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 11:06:04