将Django从1.1升级到1.2
我有一台装了Nginx和Django 1.1的Ubuntu服务器。在开发者的本地环境中,他用的是Django 1.2,这个版本有一些新功能(比如智能if),现在在我的开发服务器上出现了问题。我需要把Django升级到1.2。
这是我第一次真正参与Django/Python项目,所以我还在摸索中。我想做的就是升级。这个应用里用到了很多额外的包,比如south、pagination、registration等等。
/var/www/env/example.com/lib/python2.6/site-packages
我不是最开始安装这个的。这个文件夹里我看到的内容是这样的。
/var/www/env/example.com/lib/python2.6/site-packages$ ls
Crypto django pycrypto-2.0.1-py2.6.egg-info
Django-1.1.1-py2.6.egg-info django-avatar.egg-link registration
Fabric-0.9.0-py2.6.egg-info django_avatar-1.0.5-py2.6.egg-info setuptools-0.6c9-py2.6.egg
MySQL_python-1.2.3c1-py2.6.egg-info django_countries setuptools.pth
MySQLdb django_countries-1.0.4-py2.6.egg-info simplejson
PIL django_debug_toolbar-0.8.3-py2.6.egg-info simplejson-2.1.1-py2.6.egg-info
PIL.pth django_pagination-1.0.7-py2.6.egg-info south
South-0.7.2-py2.6.egg-info django_registration-0.7-py2.6.egg-info stdimage
_mysql.so easy-install.pth virtualenvwrapper
_mysql_exceptions.py example virtualenvwrapper-1.25-py2.6.egg-info
_mysql_exceptions.pyc fabric yolk
avatar pagination yolk- 0.4.1-py2.6.egg-info
debug_toolbar paramiko
现在文档提到,如果是通过egg安装的,升级的过程和手动安装的会不一样?
我在这里看到提到egg文件,那我该怎么进行从Django 1.1升级到1.2呢?
虚拟环境
我们使用虚拟环境(virtualenv)来为网站创建一个“容器”。也就是说,我们可以使用一套和系统不同的模块。
在本地文档中提到过这个。
我们用pip来安装模块:
这个命令需要在虚拟环境外运行(也就是当提示符中没有example.com的时候)。
$ pip -E /var/www/env/example.com install <modulename>
那么我可以用pip安全地升级Django吗?或者说我升级的最佳方法是什么?
$yolk -l
Django - 1.1.1 - active
Fabric - 0.9.0 - active
MySQL-python - 1.2.3c1 - active
PIL - 1.1.7 - active
Python - 2.6.4rc2 - active development (/usr/lib/python2.6/lib-dynload)
South - 0.7.2 - active
django-avatar - 1.0.5 - non-active
django-avatar - 1.1a5 - active development (/var/www/env/example.com/src/avatar)
django-countries - 1.0.4 - active
django-debug-toolbar - 0.8.3 - active
django-pagination - 1.0.7 - active
django-registration - 0.7 - active
pycrypto - 2.0.1 - active
setuptools - 0.6c9 - active
simplejson - 2.1.1 - active
virtualenvwrapper - 1.25 - active
wsgiref - 0.1.2 - active development (/usr/lib/python2.6)
yolk - 0.4.1 - active
1 个回答
3
使用命令pip -E /var/www/env/example.com install --upgrade django
可以顺利地升级你的django安装。不过,你可能需要先看看django 1.2的更新说明,了解一下有没有什么不兼容的变化,这些变化可能会导致你的代码出问题。此外,建议你先在开发服务器上进行这个操作,并运行你可能有的测试,确保一切正常再上线,因为如果你的代码依赖于一些内部的接口或实现,可能会失效。
我并不是想让你感到害怕,恰恰相反:1.2版本非常棒!只要在上线之前遵循标准的测试流程就好;)