【发布时间】:2019-07-16 10:00:14
【问题描述】:
我正在尝试将我的 Django 应用程序连接到 apache 服务器上的 microsoft sql 数据库,但我收到以下错误消息:
django.core.exceptions.ImproperlyConfigured: 'sql_server.pyodbc' isn't an available database backend.
Try using 'django.db.backends.XXX', where XXX is one of:
'mysql', 'oracle', 'postgresql', 'sqlite3'
我已经安装了 django-pyodbc-azure,它显示为(pip freeze list)的一部分:
Django==2.1
django-pyodbc==1.1.3
django-pyodbc-azure==2.1.0.0
pyodbc==4.0.25
这里是settings.py数据库配置:
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'name',
'USER': 'user',
'PASSWORD': 'password',
'HOST': 'host',
'PORT': '',
'OPTIONS': {
'driver': 'ODBC Driver 17 for SQL Server',
},
},
在 site-packages 文件夹中,它不显示实际的 django-pyodbc-azure 文件夹,但是当我运行命令 (pip show django-pyodbc-azure) 时,它显示包位置 (/usr/local/lib /python3.5/dist-packages) 这意味着它已成功安装。
所以我不确定是什么问题。
【问题讨论】:
-
您似乎没有使用虚拟环境,我强烈推荐。
/usr/local/lib/python3.5/将是系统 Python 版本,而不是您的虚拟环境。 -
@FlipperPA 感谢您的回复,所以如果我使用虚拟环境并在其中安装 django-pyodbc-azure 真的可以解决我的问题吗?
-
我猜这是最有可能的罪魁祸首。我总是为每个 Python 项目使用虚拟环境;值得学习,因为它将为您省去很多麻烦!
-
@FlipperPA 我可以在一个项目中创建多个虚拟环境吗?因为我忘记了第一个的名字
-
我很想知道为什么使用虚拟环境可以解决这个问题,因为这对我来说似乎不合逻辑。我知道它们总是一个好主意,但是仅使用一个怎么能解决问题呢?保持安全,伙计们......
标签: python sql-server django django-pyodbc-azure