没有名为 sql_server.pyodbc.base 的模块

Posted

技术标签:

【中文标题】没有名为 sql_server.pyodbc.base 的模块【英文标题】:No module named sql_server.pyodbc.base 【发布时间】:2015-12-21 02:46:29 【问题描述】:

我想使用 SQL Server 作为 Django 的后端,但在调试 Web 项目时得到了这个。 'sql_server.pyodbc' 不是可用的数据库后端。错误是:。

带有 Django (1.7)、pyodbc(3.0.10)、pywin32(218.3) 的 Python 环境 (Python 2.7)。这是我的 settings.py:

DATABASES = 
'default': 
    'ENGINE': 'sql_server.pyodbc',
    'NAME': 'DatabaseName',
    'USER': 'user',
    'PASSWORD': 'pwd',
    'HOST': '127.0.0.1',
    'PORT': '',
    'OPTIONS': 
        'driver': 'SQL Server Native Client 11.0',
        'server': 'ServerName',
        'MARS_Connection': True,
        'dsn': 'MSSQL-PYTHON',
        ,
    

【问题讨论】:

【参考方案1】:

您尚未安装具有所需数据库后端的软件包。

做:

pip install django-pyodbc
pip install django-pyodbc-azure

查看doc 和this one。

第二个链接中的数据库设置示例:

DATABASES = 
'default': 
    'ENGINE': 'sql_server.pyodbc',
    'NAME': 'mydb',
    'USER': 'user@myserver',
    'PASSWORD': 'password',
    'HOST': 'myserver.database.windows.net',
    'PORT': '',

    'OPTIONS': 
        'driver': 'SQL Server Native Client 11.0',
    ,
  ,


#set this to `False` if you want to turn off pyodbc's connection pooling:
DATABASE_CONNECTION_POOLING = False

【讨论】:

我按照你的建议安装了 django-pyodbc,虽然已经有一个 pyodbc。它给了我同样的错误。 您似乎仍然没有得到正确的后端包。你试过this one 吗? 您提供的关于 django-pyodbc-azure 1.8.3.0 的链接实际上解决了这个问题。不知何故,当我安装它时,它还将我的 Django 更新到了 1.8.4。所以我想匹配版本真的很重要。请更新您的答案,以便我接受。非常感谢! 看来django-pyodbc-azure (1.8.3.0) 只提供sql_server.pyodbc.base。如果我删除 pyodbc 并单独留下 django-pyodbc-azure,它会给我不同的错误。我需要 pyodbc (3.0.10) 和 django-pyodbc-azure (1.8.3.0) 如果您不想将 Django 1.9 更新到 1.10,请不要安装最新版本的 django-pyodbc-azure。以下是我安装的版本:pyodbc==3.0.10、django-pyodbc==1.0.1、django-pyodbc-azure==1.9.6 ... 干杯!【参考方案2】:

看看this link:

DATABASES = 
    'default': 
        'NAME': 'my_database',
        'ENGINE': 'sqlserver_ado',
        'HOST': 'dbserver\\ss2008',
        'USER': '',
        'PASSWORD': '',
    

假设您可以将 SQL Server 与 Django MSSQL 一起使用(上面的链接)。您可能想查看 [Django 文档] 以了解 django “本机”支持的其他数据库支持。 (https://docs.djangoproject.com/en/1.8/ref/settings/#databases)

【讨论】:

以上是关于没有名为 sql_server.pyodbc.base 的模块的主要内容,如果未能解决你的问题,请参考以下文章

macOS 上的“ModuleNotFoundError:没有名为 'dbus' 的模块”

ModuleNotFoundError:没有名为“推理”的模块

为啥 ImportError:没有名为 lightgbm 的模块

导入错误,没有名为'jwt'的模块。没有名为 "jwt "的模块

ModuleNotFoundError:没有名为“dataviz”的模块

ModuleNotFoundError:没有名为“numpy”的模块