【问题标题】:pipenv updates all dependencies bringing breaking changespipenv 更新所有依赖项带来重大变化
【发布时间】:2021-08-17 21:28:30
【问题描述】:

我在使用 Django 的应用程序时遇到问题。一切都在一个 docker 容器中,有一个 pipfile 和一个 pipfile.lock。到目前为止,一切顺利。

问题是当我想安装新的依赖时。我打开 docker 容器外壳,并使用 pipenv install <package-name> 安装依赖项。

安装包后,pipenv 运行命令更新pipfile.lock 文件,这样做会将所有包更新到其最新版本,这些更新带来了许多重大变化。

我不明白为什么会发生这种情况,我的pipfile~= 中列出了所有软件包,这是为了避免更新到可能破坏您的应用程序的版本。

我给你举个例子,我的pipfile中有这个依赖:dj-stripe = "~=2.4"。但是,在 pipfile.lock 文件中,在 pipenv 运行命令 lock 后,该依赖关系将更新到其最新版本 (2.5.1)。

我做错了什么?

【问题讨论】:

    标签: django docker pipenv


    【解决方案1】:

    您确定要在 Docker 中安装它吗? pipfile.lock 冲突的一个常见原因是在本地而不是在 Docker 中安装包,然后当本地环境与 Docker 同步时,它将覆盖您的 pipfile.lock。

    假设您使用的是 docker-compose,这就是我安装软件包的方式:

    docker-compose exec web pipenv install <package-name>

    【讨论】:

    • 感谢您的回答@wjh18,我尝试使用您与我共享的命令安装软件包,但我遇到了完全相同的问题。所有软件包都在更新到最新版本。
    • 您使用的是 docker-compose.yml 还是只是一个 Dockerfile?该命令是如果您使用 docker-compose。您可能需要使用您拥有的任何相关文件更新帖子并描述您如何使用 Docker。
    • 我正在使用 docker-compose.yml 文件。每次我想运行我的项目时,我都会使用 commadn docker-compose up
    【解决方案2】:

    我发现了我的问题。

    我一直在列出这样的依赖项:~=2.4,我认为这表明不要更新到 2.5 或更高版本,但事实并非如此,这只告诉 pipenv 不要更新到 3 或更高版本.

    为了留在2.4版本,我必须指定最后一个数字版本,例如:~=2.4.0

    这样,我告诉 pipenv 不要从 2.4 更新。

    【讨论】:

    • 很高兴你知道了。抱歉,我无法提供更多帮助!
    • 感谢您回答并尽最大努力帮助我@wjh18,我知道您似乎没有太大帮助,但我注意到在再次厚脸皮如何构建我的所有环境后发生了什么并检查所有 Docker 的东西。即使不是直接的答案,您也是解决方案的一部分。
    猜你喜欢
    • 2022-09-13
    • 2019-04-29
    • 2019-05-28
    • 2019-05-11
    • 1970-01-01
    • 2019-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多