3

我在一个 virtualenv 中的 Jenkins 从属上运行 Python 3.7,该虚拟环境是从我存储在项目的 git 中的 Pipfile.lock 创建的。

对于我在从属服务器上部署的每个作业,我需要知道 virtualenv 是最新的还是需要 pipenv 同步。

目前 pipenv 不提供检查现有 virtualenv 是否与它相关的 Pipfile.lock 匹配的方法。

我目前正在使用以下脚本来检查上述内容,但我想知道是否有更好\更简单\官方的方法来做到这一点。

我的方法:

if virtualenv exists and Pipfile.lock.back exists:
   compare md5sum of Pipfile.lock from project's Git vs. a previous copy Pipfile.lock.bak
   if files are identical:
      skip pipenv sync
      finish
   else:
      perform pipenv sync 
      if sync is successful:
          save a copy of project Git Pipfile.lock as Pipfile.lock.bak
      finish
else:  # virtualenv doesn't exist
   pipenv sync
   if sync is successful:
      save a copy of project Git Pipfile.lock as Pipfile.lock.bak
   finish
  • 注意:此方法不处理任何 virtualenv 损坏问题。
4

0 回答 0