【问题标题】:Is it a good practice to use python virtual env as a way of deploy python app?使用 python 虚拟环境作为部署 python 应用程序的一种方式是一种好习惯吗?
【发布时间】: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


【解决方案1】:

没有。我之前测试过,移动virtualenv不好。它永远不会起作用。您可以使用 PyInstaller 来制作可执行文件。我相信它可以制作 Linux 脚本,或者你可以使用 shell 脚本。 将它们放在同一目录中。

start.sh

#!/bin/sh
python3 myprogram.py

myprogram.py

print('Test')

然后运行 ​​start.sh。在回答最初的问题时,分发 virtualenv 并不是一个好习惯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 2011-03-06
    • 2010-11-16
    • 2017-11-23
    相关资源
    最近更新 更多