python2各种问题
pip安装django出错:python2 -m pip install django
编码问题:Unicode Decode Error ascii codec can't decode byte...
原因:windows系统默认编码是gbk,而pip默认编码是utf8,故出错
解决方法: python27\Lib\site-packages下,新建一个 sitecustomize.py 文件,写入
import sys
sys.setdefaultencoding('gbk')
pip安装django出错:python2 -m pip install django
源码编译问题:IOError: [Errno 22] invalid mode ('wb') or filename
原因:pip默认下载最新版本,最新版本为django2.0,而源上只有django2.0 python3的whl文件,没有python2的whl文件。因此只能采用源码编译安装,而源码编译安装又出了这个错误
解决方法:指定下载较低版本的django,这里用django 1.11.4
查看django版本:https://pypi.python.org/pypi
pip指定版本号用“==”:
python2 -m pip install django==1.11.4
启动django出错:python2 manage.py runserver
RuntimeError: maximum recursion depth exceeded in cmp
django启动时出错,报错显示在python27/Lib/functool.py的第56行
解决办法:在python目录中的Lib下面找到functools将56行
convert = {
'__lt__': [('__gt__', lambda self, other: other < self),
('__le__', lambda self, other: not other < self),
('__ge__', lambda self, other: not self < other)],
'__le__': [('__ge__', lambda self, other: other <= self),
('__lt__', lambda self, other: not other <= self),
('__gt__', lambda self, other: not self <= other)],
'__gt__': [('__lt__', lambda self, other: other > self),
('__ge__', lambda self, other: not other > self),
('__le__', lambda self, other: not self > other)],
'__ge__': [('__le__', lambda self, other: other >= self),
('__gt__', lambda self, other: not other >= self),
('__lt__', lambda self, other: not self >= other)]
}
修改成:
convert = {
'__lt__': [('__gt__', lambda self, other: not (self < other or self == other)),
('__le__', lambda self, other: self < other or self == other),
('__ge__', lambda self, other: not self < other)],
'__le__': [('__ge__', lambda self, other: not self <= other or self == other),
('__lt__', lambda self, other: self <= other and not self == other),
('__gt__', lambda self, other: not self <= other)],
'__gt__': [('__lt__', lambda self, other: not (self > other or self == other)),
('__ge__', lambda self, other: self > other or self == other),
('__le__', lambda self, other: not self > other)],
'__ge__ ': [('__le__', lambda self, other: (not self >= other) or self == other),
('__gt__', lambda self, other: self >= other and not self == other),
('__lt__', lambda self, other: not self >= other)]
}
django连接postgresql出错:python2 manage.py runserver
django.db.utils.OperationalError:
FATAL: no pg_hba.conf entry for host "172.16.23.129", user "postgres", database "datamanager", SSL on
FATAL: no pg_hba.conf entry for host "172.16.23.129", user "postgres", database "datamanager", SSL off
PostgreSQ数据库为了安全,它不会监听除本地以外的所有连接请求,当用户通过JDBC访问是,会报一些如下的异常:
org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host
要解决这个问题,只需要在PostgreSQL数据库的安装目录下找到/data/pg_hba.conf,找到“# IPv4 local connections:”
在其下加上请求连接的机器IP
host all all 127.0.0.1/32 md5
32是子网掩码的网段;md5是密码验证方法,可以改(见文件pg_hba.conf上的说明)