这可能是一个愚蠢的问题,但我仍然想问:
我正在使用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
答案 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
。它有助于在本地轻松克隆虚拟环境,例如cpvirtualenv
,rmvirtualenv
等。