没有名为 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 "的模块