【问题标题】:Running `pip` on container in GitHub action fails在 GitHub 操作中的容器上运行“pip”失败
【发布时间】:2021-12-15 12:04:01
【问题描述】:

我有一个简单的 GitHub 操作,应该设置 Python 环境,使用 pip 安装一些包,特别是 pytest,然后运行 ​​pytest

name: CI

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Check out repository code
        uses: actions/checkout@v2

      - name: Set up Python
        uses: actions/setup-python@v2
        with:
          python-version: "3.6"

      - name: Set up testing environment
        run: pip install -r test/requirements.txt

      - name: Run tests
        run: |
          source Setup.bsh
          cd test
          pytest

我正在测试一个非 Python 应用程序,但使用 pytest 作为我的测试运行器,因为它很棒。一切正常,pytest 已安装、执行且测试通过。

我想在多个 CentOS 版本上运行这个测试套件,因为这是我将使用的环境。唯一的方法是使用容器。我在build 部分添加了以下内容,以首先开始在 CentOS 7 中运行所有内容:

  build:
    runs-on: ubuntu-latest
    container: 'centos:7'

我可以看到 Docker 容器正在创建。 Set up Python 步骤也在容器内运行。 Set up testing environment 失败,并显示以下消息:"

Run pip install -r test/requirements.txt
  pip install -r test/requirements.txt
  shell: sh -e {0}
  env:
    pythonLocation: /__t/Python/3.6.15/x64
    LD_LIBRARY_PATH: /__t/Python/3.6.15/x64/lib
/__w/_temp/b7792e4c-dfd8-4f80-8787-865351941f66.sh: /__t/Python/3.6.15/x64/bin/pip: /opt/hostedtoolcache/Python/3.6.15/x64/bin/python: bad interpreter: No such file or directory

我不知道我做错了什么,或者这个配置(容器和setup-python 操作)是否有问题。有人有这方面的经验吗?

【问题讨论】:

标签: python containers github-actions


【解决方案1】:

与此同时,我发现setup-python 不适合与容器一起使用。它引用了针对运行器的操作系统编译的 Python,因此引用该安装很可能会导致错误。

例如,如果我尝试直接在 CentOS 7 容器中运行 python,它将失败,因为 CentOS 7 附带的 glibc 版本比工具缓存中的 Python 编译时所针对的版本要旧得多。

【讨论】:

    猜你喜欢
    • 2020-12-07
    • 2020-01-01
    • 2022-01-10
    • 2021-10-01
    • 2023-01-05
    • 2021-02-19
    • 2021-10-06
    • 2020-09-15
    • 2022-01-25
    相关资源
    最近更新 更多