Python 使用django mssql连接到MS SQL Server时出现问题

Python 使用django mssql连接到MS SQL Server时出现问题,python,django,sql-server-2008,django-mssql,Python,Django,Sql Server 2008,Django Mssql,我正在尝试使用django mssql连接到带有django 1.4.2的MS SQL Server 2008 R2以下是我的数据库设置: DATABASE_ENGINE = 'sqlserver_ado' DATABASE_NAME = 'dbtest' DATABASE_USER = 'App' DATABASE_PASSWORD = '*********' DATABASE_HOST = 'localhost' DATABASE_OPTIONS = {

我正在尝试使用django mssql连接到带有django 1.4.2的MS SQL Server 2008 R2以下是我的数据库设置:

DATABASE_ENGINE   = 'sqlserver_ado'
DATABASE_NAME     = 'dbtest'
DATABASE_USER     = 'App'
DATABASE_PASSWORD = '*********'
DATABASE_HOST     = 'localhost'
DATABASE_OPTIONS  =  {
            'provider': 'SQLNCLI10',
            'extra_params': 'DataTypeCompatibility=80;MARS Connection=True;',
        } 

DATABASES = {
  'default': {
    'ENGINE':   DATABASE_ENGINE,
    'NAME':     DATABASE_NAME,
    'USER':     DATABASE_USER,
    'PASSWORD': DATABASE_PASSWORD,
    'HOST':     DATABASE_HOST,
    'OPTIONS' : DATABASE_OPTIONS,
  },
}
这是我尝试syncdb时遇到的错误

    Traceback (most recent call last):
  File "C:\Python27\DataSatellite\manage.py", line 11, in <module>
    execute_manager(settings)
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 459, in execute_manager
    utility.execute()
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 371, in handle
    return self.handle_noargs(**options)
  File "C:\Python27\lib\site-packages\django\core\management\commands\syncdb.py", line 57, in handle_noargs
    cursor = connection.cursor()
  File "C:\Python27\lib\site-packages\django\db\backends\__init__.py", line 306, in cursor
    cursor = self.make_debug_cursor(self._cursor())
  File "C:\Python27\lib\site-packages\sqlserver_ado\base.py", line 193, in _cursor
    self.__connect()
  File "C:\Python27\lib\site-packages\sqlserver_ado\base.py", line 168, in __connect
    use_transactions=self.use_transactions,
  File "C:\Python27\lib\site-packages\sqlserver_ado\dbapi.py", line 151, in connect
    raise OperationalError(e, "Error opening connection: " + connection_string)
sqlserver_ado.dbapi.OperationalError: (AttributeError("'module' object has no attribute 'VARIANT'",), 'Error opening connection: DATA SOURCE=localhost;Initial Catalog=dbtest;UID=App;PWD=*********;PROVIDER=SQLNCLI10;MARS Connection=True;DataTypeCompatibility=80;MARS Connection=True;')
Finished "C:\Python27\DataSatellite\manage.py syncdb" execution.
回溯(最近一次呼叫最后一次):
文件“C:\Python27\datasatelite\manage.py”,第11行,在
执行\u管理器(设置)
文件“C:\Python27\lib\site packages\django\core\management\\uuuu init\uuuuu.py”,第459行,在执行管理器中
utility.execute()
文件“C:\Python27\lib\site packages\django\core\management\\uuuu init\uuuuu.py”,第382行,在execute中
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“C:\Python27\lib\site packages\django\core\management\base.py”,第196行,运行于\u argv
self.execute(*args,**选项._dict__;
文件“C:\Python27\lib\site packages\django\core\management\base.py”,第232行,在execute中
输出=self.handle(*args,**选项)
文件“C:\Python27\lib\site packages\django\core\management\base.py”,第371行,位于句柄中
返回self.handle\u noargs(**选项)
文件“C:\Python27\lib\site packages\django\core\management\commands\syncdb.py”,第57行,在handle\u noargs中
cursor=connection.cursor()
光标中第306行的文件“C:\Python27\lib\site packages\django\db\backends\\ uuuu init\uuuu.py”
cursor=self.make\u debug\u cursor(self.\u cursor())
文件“C:\Python27\lib\site packages\sqlserver\u ado\base.py”,第193行,在光标处
自我连接()
文件“C:\Python27\lib\site packages\sqlserver\u ado\base.py”,第168行,在\uu connect中
use\u transactions=self.use\u transactions,
文件“C:\Python27\lib\site packages\sqlserver\u ado\dbapi.py”,第151行,在connect中
引发操作错误(e,“打开连接时出错:“+连接\u字符串”)
sqlserver_ado.dbapi.OperationalError:“AttributeError”(“模块”对象没有属性“VARIANT”),“打开连接时出错:数据源=localhost;初始目录=dbtest;UID=App;PWD=**************;PROVIDER=SQLNCLI10;MARS连接=True;DataTypeCompatibility=80;MARS连接=True;”)
已完成“C:\Python27\datasatelite\manage.py syncdb”执行。
我到处都找过了,似乎无法理解和解决问题。我希望有人能帮忙! 谢谢

编辑:

我已经创建了数据库。我还使用django pyodbc连接到数据库,并且成功地从数据库进行了读写。但当我使用Apache时,django pyodbc会导致问题,这就是我决定尝试django mssql的原因。然而,我不理解它所带来的错误


我的Django(1.4.2)和Python(2.7)安装在Windows上运行,我使用的是Apache Web服务器。

更新pywin32以构建217或更高版本。我在stackoverflow上发现了另一个问题(另一个主题):


您是否创建了尝试连接的基础?是的,数据库已经存在。您的python安装运行在什么类型的服务器上?@HackingLife我已经用答案更新了我的问题。谢谢哪个版本的django mssql和哪个版本的pywin32?我回到django pyodbc并设法用Apache解决了这个问题。无论如何,谢谢你!