注册

急 Django 'django_dmPython'不是可用的数据库后端

李穎錚 2022/05/21 1738 4

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:2012.10.21
【操作系统】:win10
【CPU】:
【问题描述】*:
我在做毕设,尝试用 django 链接达梦数据库。完全按照文档:达梦:Django 框架 进行操作。并成功连接到达梦数据库。

有大哥有解决方法的话,直接打我电话也行:15011373696
python版本:3.7

  • Django 3.1.7
  • django_dmPython 3.1.7
  • dmPython 2.3

但是在进行到设置 DATABASES 设置项时出现了问题。

DATABASES = { 'default': { 'ENGINE': 'django_dmPython', # 使用的数据库后端 'NAME': 'DAMENG', 'USER': 'SYSDBA', 'PASSWORD': 'SYSDBA', 'HOST': '172.0.0.1', 'PORT': '5237', 'OPTIONS': {'local_code': 1, 'connection_timeout': 5} }

此时会出现如下报错:

G:\pythonProject\dm8_django317\mysite\mysite\settings.py changed, reloading. Watching for file changes with StatReloader Exception in thread django-main-thread: Traceback (most recent call last): File "G:\Anaconda\lib\site-packages\django\db\utils.py", line 111, in load_backend return import_module('%s.base' % backend_name) File "G:\Anaconda\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1006, in _gcd_import File "<frozen importlib._bootstrap>", line 983, in _find_and_load File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 677, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 728, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "G:\Anaconda\lib\site-packages\django_dmPython\base.py", line 18, in <module> from django.utils.deprecation import RemovedInDjango30Warning ImportError: cannot import name 'RemovedInDjango30Warning' from 'django.utils.deprecation' (G:\Anaconda\lib\site-packages\django\utils\deprecation.py) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "G:\Anaconda\lib\threading.py", line 926, in _bootstrap_inner self.run() File "G:\Anaconda\lib\threading.py", line 870, in run self._target(*self._args, **self._kwargs) File "G:\Anaconda\lib\site-packages\django\utils\autoreload.py", line 53, in wrapper fn(*args, **kwargs) File "G:\Anaconda\lib\site-packages\django\core\management\commands\runserver.py", line 110, in inner_run autoreload.raise_last_exception() File "G:\Anaconda\lib\site-packages\django\utils\autoreload.py", line 76, in raise_last_exception raise _exception[1] File "G:\Anaconda\lib\site-packages\django\core\management\__init__.py", line 357, in execute autoreload.check_errors(django.setup)() File "G:\Anaconda\lib\site-packages\django\utils\autoreload.py", line 53, in wrapper fn(*args, **kwargs) File "G:\Anaconda\lib\site-packages\django\__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "G:\Anaconda\lib\site-packages\django\apps\registry.py", line 114, in populate app_config.import_models() File "G:\Anaconda\lib\site-packages\django\apps\config.py", line 211, in import_models self.models_module = import_module(models_module_name) File "G:\Anaconda\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1006, in _gcd_import File "<frozen importlib._bootstrap>", line 983, in _find_and_load File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 677, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 728, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "G:\Anaconda\lib\site-packages\django\contrib\auth\models.py", line 2, in <module> from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager File "G:\Anaconda\lib\site-packages\django\contrib\auth\base_user.py", line 48, in <module> class AbstractBaseUser(models.Model): File "G:\Anaconda\lib\site-packages\django\db\models\base.py", line 122, in __new__ new_class.add_to_class('_meta', Options(meta, app_label)) File "G:\Anaconda\lib\site-packages\django\db\models\base.py", line 326, in add_to_class value.contribute_to_class(cls, name) File "G:\Anaconda\lib\site-packages\django\db\models\options.py", line 206, in contribute_to_class self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) File "G:\Anaconda\lib\site-packages\django\db\__init__.py", line 28, in __getattr__ return getattr(connections[DEFAULT_DB_ALIAS], item) File "G:\Anaconda\lib\site-packages\django\db\utils.py", line 214, in __getitem__ backend = load_backend(db['ENGINE']) File "G:\Anaconda\lib\site-packages\django\db\utils.py", line 126, in load_backend ) from e_user django.core.exceptions.ImproperlyConfigured: 'django_dmPython' isn't an available database backend. Try using 'django.db.backends.XXX', where XXX is one of: 'mysql', 'oracle', 'postgresql', 'sqlite3'

以下报错 ,说明 django_dmPython 不是可用的数据库后端。

django.core.exceptions.ImproperlyConfigured: 'django_dmPython' isn't an available database backend. Try using 'django.db.backends.XXX', where XXX is one of: 'mysql', 'oracle', 'postgresql', 'sqlite3'

我在网上查阅了相关代码,别人写的 ‘django_dmPython’是可用的。我不知道我错在哪里?

为证明我dmpython环境配置没有问题,我这边编写的程序来证明:

# coding:utf-8 import dmPython try: conn = dmPython.connect(user='SYSDBA', password='SYSDBA', server='127.0.0.1', port=5237) cursor = conn.cursor() print('python: conn success!') try: # 清空表,初始化测试环境 cursor.execute('delete from "NewRetail"."user"') print('del') cursor.execute('insert into "NewRetail"."user"("phone") VALUES (15011373696);') print('python: insert success!') cursor.execute('select * from "NewRetail"."user"') res = cursor.fetchall() for tmp in res: print(tmp) except (dmPython.Error, Exception) as err: None except (dmPython.Error, Exception) as err: print(err) conn.close() except (dmPython.Error, Exception) as err: print(err)

返回结果:

G:\Anaconda\python.exe G:/pythonProject/dm8_django317/test.py python: conn success! del python: insert success! (27, '15011373696', None, None) 进程已结束,退出代码为 0
回答 0
暂无回答
扫一扫
联系客服