Django问题记录
1.安装时提示找不到python的Makefile文件,但是系统上安装的确实是python2.6版本的。
[root@localhost Django-1.5.1]# python setup.py install
running install
error: invalid Python installation: unable to open /usr/lib/python2.6/config/Makefile (No such file or directory)
[root@localhost Django-1.5.1]# python -c 'import sys, pprint; pprint.pprint(sys.path)'
['',
'/usr/lib/python26.zip',
'/usr/lib/python2.6',
'/usr/lib/python2.6/plat-linux2',
'/usr/lib/python2.6/lib-tk',
'/usr/lib/python2.6/lib-old',
'/usr/lib/python2.6/lib-dynload',
'/usr/lib/python2.6/site-packages']
解决:
需要安装python的开发包
yum install python-devel
2.启动报错
[root@localhost helloWorld]# python manage.py shell
TypeError: Error when calling the metaclass bases
__init__() keywords must be strings
原因是没定义数据类型
解决:找到项目的settings.py
在DATABASES的ENGINE修改为:'django.db.backends.mysql'
3.python 2.6 Django 1.6
runserver时报错:
原因:Django1.5及以上版本,需要安装Python2.6.5及以上版本,而系统已安装的Python为2.6
[root@localhost ~]# python -V
Python 2.6
升级python即可
4.升级python为2.6.5
a.下载安装包
[root@localhost ~]# wget http://www.python.org/ftp/python/2.6.5/Python-2.6.5.tar.bz2
b.解压缩
[root@localhost ~]# tar jxvf Python-2.6.5.tar.bz2
c.编译安装
[root@localhost ~]# cd Python-2.6.5
[root@localhost Python-2.6.5]# ./configure && make && make install
d.此时安装仍未完成,查看python版本
[root@localhost Python-2.6.5]# python -V
Python 2.6
发现仍然是2.6的,需要修改一下
[root@localhost Python-2.6.5]mv /usr/bin/python /usr/bin/python_bak
[root@localhost Python-2.6.5]# ln -s /usr/local/bin/python /usr/bin/python
[root@localhost Python-2.6.5]# python -V
Python 2.6.5
此时yum脚本估计又不能工作了
修复方法:将/usr/bin/yum使用的脚本解释器个性为老版本的python,如下
#!/usr/bin/python_bak
此时使用runserver使用还是不能正常启动:
[root@localhost mysite]# python manage.py runserver
Traceback (most recent call last):
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
ImportError: No module named django.core.management
这是因为python2.6.5找不到django的安装包了,因此需要卸载django,再用python2.6.5重新安装就好了,先找到旧版本python的django安装目录
[root@localhost mysite]# /usr/bin/python_bak -c "import sys; sys.path = sys.path[1:]; import django; print(django.__path__)"
['/usr/lib/python2.6/site-packages/django']
[root@localhost mysite]# rm /usr/lib/python2.6/site-packages/django/ -rf
5.没有安装zlib,“importerror no module named zlib”,在网上搜索之后,按照以下方法解决,首先安装zlib,
# sudo yum install zlib-devel
安装完之后以要对python重新编译安装:
./configure --with-zlib && make && make install
6.runserver继续报错
raise ImproperlyConfigured("Error loading either pysqlite2 or sqlite3 modules (tried in that order): %s" % exc)
django.core.exceptions.ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named _sqlite3
安装
sudo apt-get install sqlite3
apt-get install libsqlite3-dev
7. python manage.py sql jobs
执行模块的sql提示:TypeError: __init__() got an unexpected keyword argument 'maxlength'
只需要将models.py里的maxlength修改为max_length即可。