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

执行poetry install时报错‘no pyproject.toml or setup.py’求助

Poetry安装plonkathon依赖时merlin包构建失败

环境信息

  • Mac OS v13.1
  • Python 3.10.8
  • pyenv v2.3.14
  • Poetry v1.4.0

目标

使用plonkathon仓库进行开发

问题现象

执行poetry install命令时出现如下错误:

Installing dependencies from lock file

Package operations: 0 installs, 1 update, 0 removals

  • Updating merlin (0.1.0 /Users/hoge/Library/Caches/pypoetry/virtualenvs/plonkathon-OEAbpZSY-py3.10/src/curdleproofs.pie/merlin -> 0.1.0 805d067): Failed

  BuildException

  Source /Users/hoge/Library/Caches/pypoetry/virtualenvs/plonkathon-OEAbpZSY-py3.10/src/curdleproofs.pie does not appear to be a Python project: no pyproject.toml or setup.py

  at ~/.pyenv/versions/3.10.8/lib/python3.10/site-packages/build/__init__.py:135 in _validate_source_directory
      131│         raise BuildException(f'Source {srcdir} is not a directory')
      132│     pyproject_toml = os.path.join(srcdir, 'pyproject.toml')
      133│     setup_py = os.path.join(srcdir, 'setup.py')
      134│     if not os.path.exists(pyproject_toml) and not os.path.exists(setup_py):
    → 135│         raise BuildException(f'Source {srcdir} does not appear to be a Python project: no pyproject.toml or setup.py')
      136│ 
      137│ 
      138│ def check_dependency(
      139│     req_string: str, ancestral_req_strings: tuple[str, ...] = (), parent_extras: Set[str] = frozenset()

请问是merlin包存在问题,还是我的开发环境有问题?

已尝试的解决方法

  • 删除/Users/hoge/Library/Caches/pypoetry/目录
  • 执行poetry env remove && poetry install命令
    但问题依旧。

补充说明

注意到plonkathon的pyproject.toml中指定了subdirectory配置,但似乎未被正确引用,相关配置如下:

merlin = {git = "https://github.com/nalinbhardwaj/curdleproofs.pie", rev = "master", subdirectory = "merlin"}

解决方法

这个问题并非你的环境或merlin包本身的问题,而是Poetry在处理带subdirectory参数的Git依赖时的路径识别bug。

Poetry缓存克隆的仓库后,构建过程错误地指向了仓库根目录(curdleproofs.pie),而非配置中指定的merlin子目录,而根目录确实没有Python项目所需的pyproject.toml或setup.py,因此抛出错误。可以尝试以下步骤解决:

  1. 清除对应Git依赖的缓存
    手动删除缓存中的目标仓库目录,让Poetry重新克隆并识别子目录:
rm -rf /Users/hoge/Library/Caches/pypoetry/virtualenvs/plonkathon-OEAbpZSY-py3.10/src/curdleproofs.pie

执行完成后重新运行poetry install。

  1. 升级Poetry版本
    你当前使用的Poetry 1.4.0在处理subdirectory依赖时存在已知问题,升级到最新稳定版大概率能修复该bug:
poetry self update

升级完成后再执行安装命令。

  1. 改用本地路径依赖
    如果以上方法无效,可手动克隆curdleproofs.pie仓库到本地,修改pyproject.toml中的merlin依赖配置为本地路径:
merlin = {path = "/你本地克隆的仓库路径/curdleproofs.pie/merlin"}

之后执行poetry install即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 05:43:15