首页 > 解决方案 > 带有 DB2 的 Windows 上的 Django 失败

问题描述

我在用:

在settings.py中设置连接信息并运行后

python manage.py runserver

我收到错误(仅限尾部):

文件“D:\Python37\lib\site-packages\django\db\models\options.py”,第 203 行,contribute_to_class self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())

文件“D:\Python37\lib\site-packages\django\db__init__.py”,第 33 行,在getattr return getattr(connections[DEFAULT_DB_ALIAS], item)

文件“D:\Python37\lib\site-packages\django\db\utils.py”,第 203 行,在getitem conn = backend.DatabaseWrapper(db, alias)

文件“D:\Python37\lib\site-packages\ibm_db_django\base.py”,第 155 行,在init super(DatabaseWrapper, self) 中。初始化( *args )

文件“D:\Python37\lib\site-packages\django\db\backends\base\base.py”,第 101 行,在init self.client = self.client_class(self)

TypeError:“NoneType”对象不可调用

相同的设置在 MacOS 上运行良好。一个使用 ibm_db 的简单 python 程序在 Windows 上运行良好。

标签: djangodb2

解决方案


问题是没有安装正确版本的 ibm_db_django。

pip install ibm_db_django 安装了 1.1.1.2 版,但对于 Python V3 和当前的 Django,必须安装 1.2.0.0 版。

奇怪的是, pip install ibm_db_django==1.2.0.0 失败,但可以发出 pip install ibm_db_django==1.2.0.0a0 来解决问题。

https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.swg.im.dbclient.python.doc/doc/t0060891.html上的 IBM 安装说明未提及此内容信息。IBM 指令还指定 INSTALLED_APPS 需要包含平面页面、评论和重定向,但包含这些会导致失败。

https://github.com/ibmdb/python-ibmdb-django上的文档似乎已过时(Ubuntu 7.04?)


推荐阅读