Pipenv同步和Pipenv在Docker环境中安装--system --ignore-pipfile

Vic*_*ong 6 python pip docker pipenv

根据pipenv官方文档

同步

pipenv同步[选项]

安装在Pipfile.lock中指定的所有软件包。

安装

pipenv安装[选项] [包] ...

安装提供的软件包并将其添加到Pipfile,或者(如果未提供软件包)从Pipfile安装所有软件包。

--ignore-pipfile使用Pipfile.lock忽略安装时的Pipfile。

是否可以安全地假设pipenv sync并且pipenv install --ignore-pipfile相同但没有任何隐藏的缺点?

更多背景信息:我使用--system标志将python软件包安装到系统中,因为我不在乎Docker容器中的隔离环境。但是--system标志不可用pipenv sync(请参阅github issue),因此我认为这pipenv install --system --ignore-pipfile可能是可行的hack。

小智 7

你可以在pipenv的高级用法中看到注释

pipenv install --ignore-pipfile几乎等同于pipenv sync,但pipenv sync绝不会尝试重新锁定您的依赖项,因为它被视为原子操作。pipenv install默认情况下会尝试重新锁定,除非使用该--deploy标志。

所以也许pipenv install --ignore-pipfile --deploy等于pipenv sync


sas*_*sas 5

不是真正的答案(我也有兴趣进行确认)但对于它的价值,我们一直在使用

pipenv install --system --deploy --ignore-pipfile
Run Code Online (Sandbox Code Playgroud)

在我们的 Dockerfile 中,效果很好。