将 pipenv 用于 运行 jenkins 上的单元测试需要太长时间
use pipenv for running unittest on jenkins takes too long
我们从 pip 迁移到了 pipenv。
我觉得pipenv很棒,但是运行遇到了问题。
我们 运行 我们使用 git webhook 对 jenkins 的每次推送进行单元测试。使用 pip 时,我们有一个虚拟环境,我们会在 运行 测试之前激活它并安装我们的 requiremnets.txt 文件。
这非常快,pip 会 运行 通过已经满足的要求,并且只在添加一个依赖项时安装依赖项。
使用 Pipenv,我在回购的根目录中有 Pipfile 和 Pipfile.lock,并且 运行ning pipenv install
似乎每次都在重新创建环境,并且需要很长时间了。
这可能会破坏我们的阅读交易。
是否有任何解决方法可以加快使用 pipenv 的速度?
之前的 shell 脚本(在 jenkins 作业中)类似于:
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv activate romee
pip install -r requirements.txt
pip install -r requirements-dev.txt
python tests.py
使用 pipenv:
pipenv install
pipenv install --dev
pipenv run python run_tests.py
听起来你的旧设置保留了虚拟环境和之前 pip
跨构建安装的包,而你的新 pipenv
设置没有。
默认情况下,pipenv
在构建区域之外创建一个虚拟环境,并使用构建区域的完整路径的哈希值作为名称的一部分。要么 超出构建区域 目录未在构建中保留,要么每次构建 运行 时构建区域目录路径都不同(每次都会导致新的虚拟环境时间)。
我建议在运行宁pipenv
之前设置PIPENV_VENV_IN_PROJECT=1。使用此设置,您的构建将更像旧构建,在构建目录树中使用 virtualenv。像这样:
export PIPENV_VENV_IN_PROJECT=1
pipenv install --dev
pipenv run python run_tests.py
(另外,不需要 运行 pipenv install
,pipenv install --dev
将安装主包和仅开发包。)
我们从 pip 迁移到了 pipenv。
我觉得pipenv很棒,但是运行遇到了问题。
我们 运行 我们使用 git webhook 对 jenkins 的每次推送进行单元测试。使用 pip 时,我们有一个虚拟环境,我们会在 运行 测试之前激活它并安装我们的 requiremnets.txt 文件。
这非常快,pip 会 运行 通过已经满足的要求,并且只在添加一个依赖项时安装依赖项。
使用 Pipenv,我在回购的根目录中有 Pipfile 和 Pipfile.lock,并且 运行ning pipenv install
似乎每次都在重新创建环境,并且需要很长时间了。
这可能会破坏我们的阅读交易。
是否有任何解决方法可以加快使用 pipenv 的速度?
之前的 shell 脚本(在 jenkins 作业中)类似于:
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv activate romee
pip install -r requirements.txt
pip install -r requirements-dev.txt
python tests.py
使用 pipenv:
pipenv install
pipenv install --dev
pipenv run python run_tests.py
听起来你的旧设置保留了虚拟环境和之前 pip
跨构建安装的包,而你的新 pipenv
设置没有。
默认情况下,pipenv
在构建区域之外创建一个虚拟环境,并使用构建区域的完整路径的哈希值作为名称的一部分。要么 超出构建区域 目录未在构建中保留,要么每次构建 运行 时构建区域目录路径都不同(每次都会导致新的虚拟环境时间)。
我建议在运行宁pipenv
之前设置PIPENV_VENV_IN_PROJECT=1。使用此设置,您的构建将更像旧构建,在构建目录树中使用 virtualenv。像这样:
export PIPENV_VENV_IN_PROJECT=1
pipenv install --dev
pipenv run python run_tests.py
(另外,不需要 运行 pipenv install
,pipenv install --dev
将安装主包和仅开发包。)