django - 带有 DB2 的 Windows 上的 Django 失败
问题描述
我在用:
视窗 10 专业版
IBM DB2 V11.1
蟒蛇 3.7
Django 2.1.4
ibm_db 2.0.9
ibm_db_django 1.1.1.2
在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 上运行良好。
解决方案
问题是没有安装正确版本的 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?)
推荐阅读
- javascript - Wrapper 不会占用全部空间
- java - Android缓存影响变量的值?
- swift - 如何完全禁用导航栏,但在 SwiftUI 中保留 NavigationView?
- macos - 在命令行上在 mac 上链接 GLEW 和 GLFW3
- c++ - QwebEnginePage Doesn't print html code Qt
- python - Django - 外键和管理页面
- python - 如何访问 Pandas 数据框的 Python 字典中的值、修改数据框并更新字典值
- python - 我如何在python中处理客户端错误处理
- python - 通过提供 stingpath 在函数中调用 pandas 数据框
- python - Python:KNN 回归拟合返回错误