在金仓官网下载了 python 连接金仓数据库的驱动包 ksycopg2 ,并阅读了官方文档,但还是卡在了 python 导入 ksycopg2 包这一步。
系统是 windows x64 ,金仓官方提供的 python 驱动包只支持 python3.5 也装了,VC12 运行时也装了。按照指导将 ksycopg2 文件夹放在了 python 的 site-packages 文件夹下。
然后就是测试该包能不能导入,卡在这里。pip list 一下也没有这个包,cmd 进入 python 模式 import ksycopg2 报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\***\AppData\Local\Programs\Python\Python35\lib\site-packages\ksycopg2\__init__.py", line 51, in <module>
from ksycopg2._ksycopg import ( # noqa
ImportError: DLL load failed: 找不到指定的模块。
>>>
是我哪里操作不对吗= =
1
coolair 2022-12-19 17:19:11 +08:00
我用过,但是我用的 Python 版本人大金仓没提供驱动,我用 psycopg2 改成了适配人大金仓数据库,另外 Django 数据库的 backends 也得加个。
|
3
IVeverKB OP @coolair #1 !就是说[用 psycopg2 改成了适配人大金仓数据库]这个难吗,本人完全没有接触过类似操作,能不能点拨一下。(还有 django 数据库的 backend 您也是自己写的吗,因为我看官方有提供但不知道能不能用
|
4
victorc 2022-12-19 18:05:00 +08:00
windows 容易出现这个问题,依赖包没有装完整,可以先装一个和 python3.5 对应的 anaconda ,用它的环境
|
5
coolair 2022-12-19 20:17:42 +08:00 1
@IVeverKB 不难,很简单,基本就是全局替换,搜一下有一篇文章是专门讲这个的。backend 也很容易改,直接拿人大金仓的过来对着改就行了。
|
6
unknowfly 2022-12-20 08:41:44 +08:00
应该有个_ksycopg.cp35-win_amd64.pyd 的文件,放到 ksycopg2 目录里
|
8
IVeverKB OP @unknowfly #6 这个文件确实有,但就是报我说的那个错,所以我很疑惑。本人为了用这个数据库都打算用 python3.5 写代码了,谁知道导入包这一步就卡住了。
|
10
ychenenen 2022-12-20 10:28:04 +08:00
说个偏门的,用过 java 适配人大金仓,可以用 postgreSQL 的驱动,基本上完美适配
|
11
IVeverKB OP @coolair #1 追问一下。python3.8 环境下,下载了 2.9.5 版本的 psycopg2 ,将 site-packages 下的 psycopg2 文件内容(包括相关文件名)都改为 ksycopg2 ,还是会报错诶。问题应该出在_psycopg.cp35-win_amd64.pyd 这个文件上,感觉直接改名为_ksycopg.cp35-win_amd64.pyd 不太行。求助下卡在这一步应该怎么做啊?
|
12
IVeverKB OP 忙活了半天,发现一个捷径。Django 中直接用 psycopg2 这个包就行了,其他代码也不需要变,settings.py 中 DATABASES 的设置里,ENGINE 是 psycopg2 的不变,其他设置改为人大金仓数据库的设置(数据库名,用户名,密码,主机号和端口号),可以完美链接。
|