首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Gitlab-CI上安装Python

如何在Gitlab-CI上安装Python
EN

Stack Overflow用户
提问于 2019-05-11 04:24:03
回答 2查看 6.3K关注 0票数 4

如何在Gitlab-CI上安装各种版本的Python?

在我之前使用Travis-CI的经验中,我只是简单地运行普通的Ubuntu/Debian命令来安装deadsnakes代码库,然后安装我需要的任何版本,比如:

代码语言:javascript
运行
复制
sudo add-apt-repository -y ppa:fkrull/deadsnakes
sudo apt-get -yq update
sudo apt-get -yq install python2.7 python2.7-dev python3.4 python3.4-dev python3.6 python3.6-dev python3.7 python3.7-dev

我已经用Gitlab-CI尝试过类似的配置:

代码语言:javascript
运行
复制
image: ubuntu:latest

before_script:
  - add-apt-repository -y ppa:fkrull/deadsnakes
  - apt-get -yq update
  - apt-get -yq install python2.7 python2.7-dev python3.4 python3.4-dev python3.6 python3.6-dev python3.7 python3.7-dev
  - python -V

test:
  script:
  - ./run_my_tests.sh

但这失败了,原因是:

代码语言:javascript
运行
复制
/bin/bash: line 82: add-apt-repository: command not found

我只能假设即使我运行的是Ubuntu镜像,Gitlab也会限制可用的命令。在Gitlab-CI中安装Python的等效方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-14 03:56:35

@Arthur Havlicek有一个正确的想法。我以为software-properties-common是默认安装的,但事实并非如此。此外,我使用了错误的PPA名称,现在是"deadsnakes/ppa“。

功能配置文件如下所示:

代码语言:javascript
运行
复制
image: ubuntu:latest

before_script:
  - apt-get -yq update
  - apt-get -yq install software-properties-common
  - add-apt-repository -y ppa:deadsnakes/ppa
  - apt-get -yq update
  - apt-get -yq install python-minimal python2.7 python2.7-dev python3.6 python3.6-dev python3.7 python3.7-dev python-pip

test:
  script:
  - ./run_my_tests.sh
票数 7
EN

Stack Overflow用户

发布于 2019-05-11 15:58:43

您应该使用包含您所需的所有内容的基础图像。原则上手动安装应该是可行的,但是会不必要地花费您的GitLab CI管道分钟。

对于python 3.7,您可以执行以下操作:

代码语言:javascript
运行
复制
image: python:3.7-alpine3.9

有关所有可用的python图像的列表,请查看DockerHub:https://hub.docker.com/_/python

如果您需要使用不同的python版本进行测试,我建议将您的任务拆分到不同的GitLab CI任务中,每个任务使用不同的python基础镜像:

代码语言:javascript
运行
复制
test-python-3-7:
  image: python:3.7-alpine3.9
  script:
  - ./run_my_tests.sh

test-python-2.7:
  image: python:2.7.16-alpine3.8
  script:
  - ./run_my_tests.sh

如果您因为没有合适的映像而绝对需要自己安装,我仍然建议您创建一个包含所有所需内容的映像,将其上传到DockerHub或您自己的GitLab容器注册表,然后在CI管道中使用它。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56084389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档