首页 > 编程问答 >python - 构建奇点容器时在 pyproject.toml 中找不到 [tool.poetry] 部分

python - 构建奇点容器时在 pyproject.toml 中找不到 [tool.poetry] 部分

时间:2024-07-31 12:15:56浏览次数:11  
标签:python python-poetry singularity-container

我正在尝试构建一个在 HPC 环境上运行的奇点容器。我正在使用 poetry 来管理python包。

我的 pyproject.toml 文件的内容如下:

[tool.poetry]
name = "haqc"
version = "0.1.0"
description = ""
authors = ["Vivek Katial <[email protected]>"]

[tool.poetry.dependencies]
python = "^3.8"
...
haqc = {path = ".", develop = true}

[tool.poetry.dev-dependencies]

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

然后在我的 Singularity 定义文件中,我有以下内容可以使用 poetry 进行设置:| ||每次我尝试构建容器时,我都会收到以下错误,尽管

%post
  pip install --upgrade pip
  git clone https://<REPO>.git
  cd HAQC
  pip install "poetry==$POETRY_VERSION"
  poetry config virtualenvs.create false \
  && poetry install --no-interaction --no-ansi

文件存在于构建时的目录中(我 pyproject.toml 需要检查): echo 'd an ls -lhar to check):

  PyProjectException

  [tool.poetry] section not found in /HAQC/pyproject.toml

  at /usr/local/lib/python3.9/site-packages/poetry/core/pyproject/toml.py:56 in poetry_config
      52│     def poetry_config(self):  # type: () -> Optional[TOMLDocument]
      53│         if self._poetry_config is None:
      54│             self._poetry_config = self.data.get("tool", {}).get("poetry")
      55│             if self._poetry_config is None:
    → 56│                 raise PyProjectException(
      57│                     "[tool.poetry] section not found in {}".format(self._file)
      58│                 )
      59│         return self._poetry_config
      60│

该错误信息表明 Poetry 无法在 pyproject.toml 文件中找到 [tool.poetry] 部分。虽然你说该文件存在,但仍有一些可能的原因导致这个问题:

1. 文件路径错误:

  • Poetry 在运行时可能没有读取正确的 pyproject.toml 文件路径。确保 cd HAQC 命令确实切换到了包含 pyproject.toml 文件的目录。
  • 你可以在 %post 部分添加 pwd 命令查看当前工作目录是否正确:
%post
  ...
  pwd 
  pip install "poetry==$POETRY_VERSION"
  ...

2. 文件编码问题:

  • 确保 pyproject.toml 文件使用 UTF-8 编码保存。其他编码格式可能会导致解析错误。

3. 文件权限问题:

  • 确保 Poetry 对 pyproject.toml 文件具有读取权限。你可以尝试在 %post 部分添加 chmod +r pyproject.toml 命令来更改文件权限。

4. Poetry 版本问题:

  • 尝试使用最新版本的 Poetry,旧版本可能存在 bug。你可以尝试在 %post 部分使用 pip install --upgrade poetry 更新 Poetry。

5. 文件内容被修改:

  • 确保在执行 git clone poetry install 命令之间,没有任何其他命令修改了 pyproject.toml 文件内容。

调试建议:

  • poetry config virtualenvs.create false 命令前后添加 echo "----- Before poetry config -----" echo "----- After poetry config -----" ,以便查看该命令是否成功执行。
  • 尝试在本地环境中使用相同的 Singularity 定义文件和 pyproject.toml 文件构建容器,看是否能够复现该问题。

如果以上方法都无法解决问题,请提供以下信息以便进一步分析:

  • 完整的 Singularity 定义文件内容。
  • %post 部分的完整日志输出。
  • 你使用的 Poetry 版本。

希望以上信息能帮助你解决问题。

标签:python,python-poetry,singularity-container
From: 74513062

相关文章

  • 如何在Python中处理FileNotFoundException
    我有一个函数可以从路径读取avro文件(按日文件夹)并将其写入相同的路径(聚合到按月的文件夹)。如果文件夹有.avro文件,该函数可以正常工作。但如果文件夹为空,我会收到错误。java.io.FileNotFoundException:Noavrofilesfound.Iffilesdon'thave.avroextension,set......
  • 有谁知道如何在 ROS 中使用 python 开发赛车模拟编码?
    在模拟中,主要目标是让自动驾驶汽车读取AprilTags并根据标牌提供的说明进行导航。AprilTags是一种基准标记,可作为重要的视觉提示,传达有关汽车周围环境的信息,例如方向、速度限制和其他关键路标。汽车的车载视觉系统应该检测这些标签,解码嵌入的数据,并相应地调整其运动。这包括在......
  • python实现提取视频帧的图片
    文章目录1、需求痛点2、完整代码⭐3、代码分析3.1、需要改动的地方3.2、OpenCV库的使用3.3、多线程技术4、执行效率5、效果展示⭐6、注意事项......
  • 三种语言实现差分(C++/Python/Java)
    题目输入一个长度为n的整数序列。接下来输入m个操作,每个操作包含三个整数l,r,c表示将序列中[l,r]之间的每个数加上c。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数序列。接下来m行,每行包含三个整数l,r,c,表......
  • Python编程的16个坏习惯
    1、手动进行字符串格式化#坏习惯name="Alice"greeting = "Hello, " + name +"!" #好习惯name="Alice"greeting=f"Hello,{name}!" 理由:使用+进行字符串拼接会导致代码可读性差,而且在复杂情况下容易出错,f-string可读性更好 2、手动关闭文件#坏习惯......
  • Flask框架入门:快速搭建轻量级Python网页应用
    转载: Flask框架入门:快速搭建轻量级Python网页应用1. Flask基础Flask是一个使用Python编写的轻量级Web应用框架。它的设计目标是让Web开发变得快速简单,同时保持应用的灵活性。Flask依赖于两个外部库:Werkzeug和Jinja2,Werkzeug作为WSGI工具包处理Web服务的底层细节,Jinja2作为......
  • 我有一个“pywhatkit”python 模块属性错误。你能帮我吗?
    Pywhatkit已成功安装,但在任何属性代码中都显示属性错误。我可以修复它吗?我尝试过的代码:importpywhatkitpywhatkit.sendmsg('071*******','Ado',15,48)我如何修复这个问题:我将程序文件名“pywhatkit.py”重命名为“anotername.py”。谢谢所有帮......
  • 如何使用Python获取Excel文件中嵌入图像的位置?
    我正在使用包含嵌入图像的Excel文件(.xlsx)。我需要使用Python以编程方式提取这些图像的位置(单元格引用)。这是我到目前为止所尝试过的:任何建议将不胜感激。使用openpyxl和openpyxl-image-loader:我没有处理嵌入图像。解压缩Excel文件并检查内容:......
  • cmd输入python直接弹出windows应用商店
    明明已经安装好了python,并且也确认配置好了python的环境变量,但是在cmd里输入python后,直接弹出windows商店,python获取界面,其实只需要关闭系统里的应用执行别名设置,最近出来的电脑系统里是自带开启了python相关的执行别名。步骤是【设置】-【应用】-【高级应用设计】-【应用执行名称......
  • Python 数学问题:(2**3+(5+6)**(1+1)) =?
    (2**3+(5+6)**(1+1))=?如果您能提供一步一步的解决方案,我将不胜感激。计算机向我展示了答案,但我只是不知道它是如何得出的。所以,如果可以的话,让我知道就太好了。我已经被“**”部分困住了,而且也对“3”的用途感到困惑。我尝试了这个问题,得到了131,但这不是答案。让我......