【问题标题】:Python deployment with virtualenv (on a no-internet-access server)使用 virtualenv 的 Python 部署(在无 Internet 访问服务器上)
【发布时间】:2021-11-27 16:20:18
【问题描述】:

我的生产服务器无法访问互联网,因此将所有依赖项从我的开发机器复制到生产/开发服务器有点麻烦。

如果我使用 virtualenv,我的所有依赖项都会在这个环境中。这样做我还可以将它部署在任何安装了 python 和 virtualenv 的机器上。

但我很少看到这种情况,而且看起来有点脏。 我错了,这可能是一个很好的做法,还是有其他方法可以很好地解决这个问题?

【问题讨论】:

标签: python deployment virtualenv


【解决方案1】:

我会考虑三个选项:

  1. 使用您需要的依赖项运行您自己的PyPI mirror。您实际上只需要构建文件布局并使用 index-url 标志从本地服务器拉取:

    $ pip install --index-url http://pypi.beastcraft.net/ numpy

  2. 在相同架构上构建 virtualenvs 并根据需要复制它们。

    这行得通,但您要冒真正可移植性的风险。

  3. 使用 terrarium 构建虚拟环境,然后将其引入(基本上是选项 2,但更容易记账/自动化)。

我已经完成了所有这些工作,实际上我认为托管您自己的 PyPI 镜像是最好的选择。在您进行部署或尝试新代码时,它为您提供最大的灵活性。

【讨论】:

  • 与其他两个选项相比,托管自己的镜像有一个缺点。如果您有冲突/共享依赖项,您需要托管在您将需要/想要某种虚拟环境的同一个盒子上。
  • pypi.org/project/virtualenv-clone 可能会有所帮助(刚刚找到,未尝试)。
猜你喜欢
  • 1970-01-01
  • 2014-04-14
  • 1970-01-01
  • 1970-01-01
  • 2017-06-01
  • 2016-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多