【发布时间】:2021-07-15 05:07:51
【问题描述】:
我需要在数以万计的机器上部署我的 python 代码(都是 linux,但内核不同)。
为了节省时间解决对不同机器的依赖问题,我想到了以下两种方法:
一个想法是使用 docker,这在我的情况下是不可能的。
另一个想法是使用虚拟环境。计划在我的笔记本电脑上创建虚拟环境,安装依赖项和我的代码,然后 tar 目录并将其复制到目标机器。
这是一个好习惯吗?这样做可能有什么问题?
【问题讨论】:
-
不建议移动已经创建的 virtualenv 文件夹。建议使用 Docker 或任何类型的容器化。
-
如果要使用虚拟环境来解决依赖关系,请使用 pipenv 和 piplock 代替 venv。
-
无需使用 Docker 即可拥有独立的用户空间环境。人们在 Docker 出现之前几十年就开始分发 chroot(就此而言,在 Python 存在之前)。
-
也就是说,“最佳实践”问题通常被认为过于模糊(基于意见、宽泛等),无法成为此处的主题。请参阅 Meta Stack Overflow 上的 Why is asking a question on best practice a bad thing?。
-
github.com/pantsbuild/pex,这是一个选择
标签: python virtualenv