复制虚拟环境以进行生产

时间:2014-09-05 21:38:19

标签: django nginx cherrypy

这可能是一个愚蠢的问题,但我仍然想问:

我正在使用Django,CherryPy和Nginx开发一个项目。我注意到通常会创建一个文件requirement.txt来指示开发环境中安装的软件包和版本。假设虚拟环境的目录是/home/me/project/python2Venv

当我将Django项目( tango )部署到生产环境中时,项目将被复制到生产目录:

sudo cp -r /home/me/project/tango /webapps/tango

对于虚拟环境,我是否可以使用以下命令复制整个目录,或者我应该根据requirement.txt再次将每个软件包安装到生产环境中?

sudo cp -r /home/me/project/python2Venv /webapps/tango/python2Venv

3 个答案:

答案 0 :(得分:3)

我认为virtualenv在某些文件中使用绝对路径,因此重新创建env并通过requirements.txt安装包会更安全。

答案 1 :(得分:1)

在我看来,建议使用requirements.txt安装软件包。复制目录,最终可能成为一场噩梦。

在更新1中说: 您有4个包,每个包具有特定版本(pkg1-ver1,pkg2-ver1,pkg3-ver1,pkg-ver1)。

在更新2中: 您已将一个软件包升级到其新版本(pkg1-ver2)。使用requirements.txt,您只需升级一个包。而不是复制所有包(虽然,我不知道复制目录的效果如何)。

希望这有帮助!

答案 2 :(得分:0)

您应该使用文件requirements.txt安装包。

或者您可以使用virtualenvwrapper。它有助于在本地轻松克隆虚拟环境,例如cpvirtualenvrmvirtualenv等。