gpt4 book ai didi

pip - 在作业之间共享已安装的要求

转载 作者:行者123 更新时间:2023-12-03 20:58:12 24 4
gpt4 key购买 nike

我有以下包含 3 个不同作业的 yml 配置文件:

stages:
- build
- test
- analyze

build:
stage: build
script:
- apt-get update -qy
- apt-get install -y python3-dev python3-pip
- pip3 install -r requirements.txt

test:
stage: test
script:
- coverage run --source='.' manage.py test
cache:
paths:
- .coverage

analyze:
stage: analyze
script:
- flake8
- coverage report

在第一份工作中,我安装了要求,其中包括 coverageflake8。但是这些工具用于以下工作。我试过使用'dependencies'或'cache',但没有用:只能共享项目根目录下的文件/目录,不能共享/user/local/bin下的二进制文件。

我试图为 pip install 指定另一个目录,但二进制文件安装在/user/local/bin 中。

我找到的解决方法是在每个作业中安装依赖项,但我认为这是不太理想的解决方案。

我认为必须有更好的解决方案。

谢谢。

最佳答案

我刚刚找到了一个解决方案,至少对于 python3(对我来说足够了):

python3 有一个用于管理虚拟环境的内置工具:venv

使用 venv,我们可以在项目根目录中创建虚拟环境,缓存此目录,并在每个作业中启用我们的虚拟环境。

variables:
VENV_NAME: "env"

cache:
paths:
- $VENV_NAME

first_job:
script:
- apt-get update -qy
- apt-get install -y python3-dev python3-pip python3-venv
- python3 -m venv $VENV_NAME
- source $VENV_NAME/bin/activate
- pip3 install -r requirements.txt

next_jobs:
script:
- source $VENV_NAME/bin/activate
- echo "hello world!"

PD:不要忘记从覆盖范围或其他分析工具中排除虚拟环境目录

关于pip - 在作业之间共享已安装的要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53523272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com