对于服务器端python代码,有没有比virtualenv更好的解决方案?

对于服务器端python代码,有没有比virtualenv更好的解决方案?,python,linux,deployment,virtualenv,server,Python,Linux,Deployment,Virtualenv,Server,多年来,我一直在使用和进行开发。直到最近,我一直很幸运,我部署的系统/服务器(*nix)也没有运行其他Python应用程序,因此我从不必担心冲突的站点包 谷歌搜索没有给我带来任何好处,所以我希望社区能帮助我找到一种通用的方法来管理部署系统/服务器上的python依赖关系 澄清 值得注意的是,我要部署的系统是资源有限的单板计算机。这排除了为每个应用程序使用VM等实现 在询问时,我无法在任何方面指责virtualenv(可能是因为我还没有在服务器上尝试过它) 我部署的应用程序大部分是系统进程(web

多年来,我一直在使用和进行开发。直到最近,我一直很幸运,我部署的系统/服务器(*nix)也没有运行其他Python应用程序,因此我从不必担心冲突的
站点包

谷歌搜索没有给我带来任何好处,所以我希望社区能帮助我找到一种通用的方法来管理部署系统/服务器上的python依赖关系

澄清

  • 值得注意的是,我要部署的系统是资源有限的单板计算机。这排除了为每个应用程序使用VM等实现
  • 在询问时,我无法在任何方面指责virtualenv(可能是因为我还没有在服务器上尝试过它)
  • 我部署的应用程序大部分是系统进程(web服务器、引导加载程序、日志UTIL等)。因为这些都是作为后台服务运行的(通常具有根访问权限),我不知道virtualenv将如何公平
  • 在我尝试使用一些在我看来是面向开发的东西之前,我想看看是否有一种管理python依赖服务器端的通用方法

  • 除非您有其他原因不使用virtualenv,否则它已经可以生产了,并且与系统站点包中的系统python性能一样。Virtualenv基本上只是python可执行文件在其自己的目录树中的一个副本。它通过调用单独的可执行文件而不是系统可执行文件来工作。只要process manager/init脚本指向virtualenv中的可执行文件,它就可以正常工作。

    当然有不同的解决方案,从zc.buildout之类的工具到将每台服务器作为容器中的独立VM运行,这样它们就可以拥有自己的系统站点包,但如果其中一个明显“优于”其他服务器,与其说每一种都有不同的用途,不如说我们不会有这么多的品种。那么,对于您的用例来说,
    virtualenv
    有什么问题?你想做什么不同的工作?@abarnert我应该在问题中说明这一点,我正在部署的系统是小型单板计算机。所以虚拟机的概念不可能发生。我将不得不重新评估zc.buildout,我记得它是针对应用程序中的包的。不是关于给定系统上的多个应用程序。我错了吗?你需要编辑这个问题,直到它有足够的信息来回答它。在评论中给出模糊的半个答案是不够的。VM有轻量级的替代品,例如。你可以用它在一个目录中收集所有东西。我不太清楚virtualenv有什么问题。你能提供更多关于你为什么不想使用它的信息吗?