Python /Django 用人大金仓数据库 有有经验的吗

2022-12-19 17:06:31 +08:00
 IVeverKB

在金仓官网下载了 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: 找不到指定的模块。
>>>

是我哪里操作不对吗= =

1026 次点击
所在节点    Python
12 条回复
coolair
2022-12-19 17:19:11 +08:00
我用过,但是我用的 Python 版本人大金仓没提供驱动,我用 psycopg2 改成了适配人大金仓数据库,另外 Django 数据库的 backends 也得加个。
IVeverKB
2022-12-19 17:20:45 +08:00
IVeverKB
2022-12-19 17:23:28 +08:00
@coolair #1 !就是说[用 psycopg2 改成了适配人大金仓数据库]这个难吗,本人完全没有接触过类似操作,能不能点拨一下。(还有 django 数据库的 backend 您也是自己写的吗,因为我看官方有提供但不知道能不能用
victorc
2022-12-19 18:05:00 +08:00
windows 容易出现这个问题,依赖包没有装完整,可以先装一个和 python3.5 对应的 anaconda ,用它的环境
coolair
2022-12-19 20:17:42 +08:00
@IVeverKB 不难,很简单,基本就是全局替换,搜一下有一篇文章是专门讲这个的。backend 也很容易改,直接拿人大金仓的过来对着改就行了。
unknowfly
2022-12-20 08:41:44 +08:00
应该有个_ksycopg.cp35-win_amd64.pyd 的文件,放到 ksycopg2 目录里
unknowfly
2022-12-20 08:43:08 +08:00
@coolair 有点兴趣,可以发一下文章链接吗
IVeverKB
2022-12-20 09:51:26 +08:00
@unknowfly #6 这个文件确实有,但就是报我说的那个错,所以我很疑惑。本人为了用这个数据库都打算用 python3.5 写代码了,谁知道导入包这一步就卡住了。
IVeverKB
2022-12-20 09:52:21 +08:00
@coolair #5 非常感谢!我先去搞搞。同问文章链接,或者提供一下搜索关键字也可以!
ychenenen
2022-12-20 10:28:04 +08:00
说个偏门的,用过 java 适配人大金仓,可以用 postgreSQL 的驱动,基本上完美适配
IVeverKB
2023-02-24 15:14:31 +08:00
@coolair #1 追问一下。python3.8 环境下,下载了 2.9.5 版本的 psycopg2 ,将 site-packages 下的 psycopg2 文件内容(包括相关文件名)都改为 ksycopg2 ,还是会报错诶。问题应该出在_psycopg.cp35-win_amd64.pyd 这个文件上,感觉直接改名为_ksycopg.cp35-win_amd64.pyd 不太行。求助下卡在这一步应该怎么做啊?
IVeverKB
2023-02-27 10:08:21 +08:00
忙活了半天,发现一个捷径。Django 中直接用 psycopg2 这个包就行了,其他代码也不需要变,settings.py 中 DATABASES 的设置里,ENGINE 是 psycopg2 的不变,其他设置改为人大金仓数据库的设置(数据库名,用户名,密码,主机号和端口号),可以完美链接。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/903535

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX