mssql 不是可用的数据库后端或无法导入

Cad*_*adz 6 python sql-server django

我正在遵循本指南。Mssql-django和我有 Django 版本 3.2.12 我已经安装了 mssql-django 1.1.1 我也有 pyodbc 4.0.32

修改我的settings.py以具有

'ENGINE': 'mssql',
Run Code Online (Sandbox Code Playgroud)

但我仍然收到这个错误

django.core.exceptions.ImproperlyConfigured: 'mssql' isn't an available database backend or couldn't be imported. Check the above exception. To use one of the built-in backends, use 'django.db.backends.XXX', where XXX is one 
of:
    'mysql', 'oracle', 'postgresql', 'sqlite3'
Run Code Online (Sandbox Code Playgroud)

Dae*_*lus 0

我在使用 Flask 时遇到了类似的问题。解决方案如下:

  1. odbcinst.ini创建一个以内容命名的文件
[FreeTDS]
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Run Code Online (Sandbox Code Playgroud)
  1. requirements.txt文件应具有 mssql 和 pyodbc 的工作版本。

例如 :

mssql==1.0.1
pyodbc==4.0.31
Run Code Online (Sandbox Code Playgroud)
  1. 服务器配置有:

    SQLALCHEMY_BINDS = {
    'my_database': "mssql+pyodbc://{}:{}@{}?driver=FreeTDS".format(
        os.getenv("database_user"), 
        os.getenv("database_password"), 
        os.getenv("database_host")
    )
    
    Run Code Online (Sandbox Code Playgroud)

    }

  2. 最后可能Dockerfile是这样的:

     FROM python:3.9.8-slim
    
     [...other staff here...]
    
     COPY odbcinst.ini /etc/
    
     [...other staff here...]
    
    Run Code Online (Sandbox Code Playgroud)

希望您能够将 Flask 习惯用法转换到您的 django 应用程序中并使其正常工作。当我试图让它发挥作用时,这让我感到非常沮丧。