使用Django pyodbc SQLSERVER问题
我正在尝试将django与sqlserver连接起来。我已经安装了python odbc和django odbc 我的数据数据库配置(settings.py) 但是,我在尝试运行服务器时遇到以下错误: C:\edas>python manage.py运行服务器使用Django pyodbc SQLSERVER问题,django,pyodbc,django-pyodbc,Django,Pyodbc,Django Pyodbc,我正在尝试将django与sqlserver连接起来。我已经安装了python odbc和django odbc 我的数据数据库配置(settings.py) 但是,我在尝试运行服务器时遇到以下错误: C:\edas>python manage.py运行服务器 Validating models... Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib
Validating models...
Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib.staticfiles.management.comma
nds.runserver.Command object at 0x02EC2E70>>
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.py", line 91, in inner_run
self.validate(display_num_errors=True)
File "C:\Python27\lib\site-packages\django\core\management\base.py", line 266, in validate
num_errors = get_validation_errors(s, app)
File "C:\Python27\lib\site-packages\django\core\management\validation.py", line 23, in get_validation_errors
from django.db import models, connection
File "C:\Python27\lib\site-packages\django\db\__init__.py", line 40, in <module>
backend = load_backend(connection.settings_dict['ENGINE'])
File "C:\Python27\lib\site-packages\django\db\__init__.py", line 34, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "C:\Python27\lib\site-packages\django\db\utils.py", line 92, in __getitem__
backend = load_backend(db['ENGINE'])
File "C:\Python27\lib\site-packages\django\db\utils.py", line 24, in load_backend
return import_module('.base', backend_name)
File "C:\Python27\lib\site-packages\django\utils\importlib.py", line 35, in import_module
__import__(name)
File "C:\Python27\lib\site-packages\sql_server\pyodbc\base.py", line 56, in <module>
elif 'collation' in settings.DATABASE_OPTIONS:
File "C:\Python27\lib\site-packages\django\utils\functional.py", line 185, in inner
return func(self._wrapped, *args)
AttributeError: 'Settings' object has no attribute 'DATABASE_OPTIONS'
正在验证模型。。。
由启动的线程中存在未处理的异常
回溯(最近一次呼叫最后一次):
文件“C:\Python27\lib\site packages\django\core\management\commands\runserver.py”,第91行,在内部运行
self.validate(display\u num\u errors=True)
文件“C:\Python27\lib\site packages\django\core\management\base.py”,第266行,在validate中
num\u errors=get\u validation\u errors(s,app)
文件“C:\Python27\lib\site packages\django\core\management\validation.py”,第23行,在get\u validation\u errors中
从django.db导入模型,连接
文件“C:\Python27\lib\site packages\django\db\\uuuuu init\uuuuuu.py”,第40行,在
后端=加载\后端(connection.settings \ dict['ENGINE'])
文件“C:\Python27\lib\site packages\django\db\\ uuuuu init\uuuuuu.py”,第34行,在\uuuu getattr中__
返回getattr(连接[默认\u DB\u别名],项)
文件“C:\Python27\lib\site packages\django\db\utils.py”,第92行,在\uu getitem中__
后端=加载\u后端(db['ENGINE'])
文件“C:\Python27\lib\site packages\django\db\utils.py”,第24行,在load\u后端
返回导入_模块('.base',后端_名称)
文件“C:\Python27\lib\site packages\django\utils\importlib.py”,第35行,在导入模块中
__导入(名称)
文件“C:\Python27\lib\site packages\sql\u server\pyodbc\base.py”,第56行,在
elif settings.DATABASE_选项中的“排序规则”:
文件“C:\Python27\lib\site packages\django\utils\functional.py”,第185行,在内部
返回函数(自包装,*args)
AttributeError:“设置”对象没有“数据库\u选项”属性
有人能帮我找出解决方法吗?看起来django odbc是一个死项目,从1.3版开始,它不再与最新的django兼容
您可以通过编辑C:\Python27\lib\site packages\sql\u server\pyodbc\base.py”第56行查看
settings.DATABASES['default'].get('options')来修复它
,但如果您这样做,您无疑会发现更多的不兼容问题。看起来有人在这里为django 1.4选择了django pyodbc我切换到Michael Baltaks提到的分支,从而更进一步。我使用以下命令卸载了旧的不兼容版本:
$ pip uninstall sql-server.pyodbc
然后安装git hub版本:
$ pip install https://github.com/avidal/django-pyodbc/archive/django-1.4.zip
然而,这并没有让我一直工作。我现在得到以下错误:
pyodbc.Error:('00000','[00000][iODBC][Driver Manager]dlopen({FreeTDS},6):找不到映像(0)(SQLDriverConnect)'
看看这个叉子: 它与Django 1.4兼容 这是2岁了…希望你有一个答案。 关于它的价值:您声明的数据库对象需要一个“options”参数,请参见下文
#数据库连接器
数据库={
“默认值”:{
“引擎”:“,
“姓名”:“,
“用户”:“,
“密码”:“,
“主持人”:“,
“端口”:“,
“选项”:{
“司机”:“,
“火星连接”:正确,
},
}
}
这对我很有效,特别是驱动程序支持utf8线路:
'dbconn': {
'CREATE_DB': False,
'CREATE_USER': False,
'CREATE_TBLSPACE': False,
'ENGINE': 'django_pyodbc',
'NAME': 'DBNAME',
'USER': 'user',
'PASSWORD': 'password',
'HOST': 'HOST',
'OPTIONS': {
'host_is_server': True,
'driver_supports_utf8': True,
}
}
删除
Lib\site packages\
中的sql server文件夹,以便执行
pip安装django pyodbc azure
pip安装sql_server.pyodbc是否有任何其他活动项目来替换django odbc?
'dbconn': {
'CREATE_DB': False,
'CREATE_USER': False,
'CREATE_TBLSPACE': False,
'ENGINE': 'django_pyodbc',
'NAME': 'DBNAME',
'USER': 'user',
'PASSWORD': 'password',
'HOST': 'HOST',
'OPTIONS': {
'host_is_server': True,
'driver_supports_utf8': True,
}
}