Python 3.x 用于Python的IBM_DB包似乎没有IBM_DB.dll

Python 3.x 用于Python的IBM_DB包似乎没有IBM_DB.dll,python-3.x,db2,Python 3.x,Db2,免责声明: 我是Python的新手 在过去的几天里,我一直在尝试使用Python访问DB2数据库,但到目前为止,我的尝试没有成功 我已经通过执行以下命令安装了“ibm_db”包:pip install ibm_db,它似乎安装成功了。因此,当我尝试导入ibm_db时,不再出现“找不到ibm_db的模块”错误。此外,我还相应地设置了IBM_DB_HOME 但是,当我尝试执行以下代码时,我现在得到了这个错误: ImportError:导入ibm_db时DLL加载失败:找不到指定的模块 我已经爬过了互

免责声明: 我是Python的新手

在过去的几天里,我一直在尝试使用Python访问DB2数据库,但到目前为止,我的尝试没有成功

我已经通过执行以下命令安装了“ibm_db”包:pip install ibm_db,它似乎安装成功了。因此,当我尝试导入ibm_db时,不再出现“找不到ibm_db的模块”错误。此外,我还相应地设置了IBM_DB_HOME

但是,当我尝试执行以下代码时,我现在得到了这个错误: ImportError:导入ibm_db时DLL加载失败:找不到指定的模块

我已经爬过了互联网,看看我缺少了什么,发现我没有任何IBM_DB_DLL文件夹,也没有IBM_DB.DLL

如何获取这些文件

系统和安装详细信息:

Windows 10-64位

Python版本——win32上的Python 3.8.0[MSC v.1916 64位(AMD64)]——我不知道win32的含义。我从Python网站安装了这个版本(Windows x86-64可执行安装程序)

我还安装了“IBM DB2运行时客户机10.5fp8”

IBM\u DB\u HOME变量设置为:C:\Python\Lib\site packages

我能够用Python运行其他程序。但是,这是我第一次尝试连接到DB2

非常感谢您的任何帮助或意见

提前感谢,

甘尼什



def make_connexion(server, port, database, username, password, timeout):
return db2.connect('DATABASE={0};'.format(database) +
                  'HOSTNAME={0};'.format(server) +
                  'PORT={0};'.format(str(port)) +
                  'PROTOCOL=TCPIP;' +
                  'UID={0};'.format(username) +
                  'PWD={0};'.format(password) +
                  'ConnectTimeout={0};'.format(str(timeout))
                  , '', '')

--sample connexion object

connexion = make_connexion('server', 'port', 'database', 'username', 'password', 'timeout')
在使用easy_install ibm_db卸载并重新安装ibm_db软件包之后,我注意到一条警告消息,上面写着警告:在目录“ibm_db_dlls”下找不到与“”匹配的文件*

下面是我尝试安装ibm_db包时的完整日志

C:\Users\me\AppData\Local\Programs\Python\Python38\Scripts>easy_install ibm_db
Searching for ibm_db
Reading https://pypi.org/simple/ibm_db/
Downloading https://files.pythonhosted.org/packages/98/cb/f77d9bd5f64246074af364cc30e20e3044c533890f3b67d30e89615c2fc5/ibm_db-3.0.1.tar.gz#sha256=a609e07295d16455d40df94ddd61b3d476606f5d44e3352103776e3ecbff185a
Best match: ibm-db 3.0.1
Processing ibm_db-3.0.1.tar.gz
Writing C:\Users\me\AppData\Local\Temp\easy_install-vdcgwf_i\ibm_db-3.0.1\setup.cfg
Running ibm_db-3.0.1\setup.py -q bdist_egg --dist-dir C:\Users\me\AppData\Local\Temp\easy_install-vdcgwf_i\ibm_db-3.0.1\egg-dist-tmp-3p_6emad
Detected 64-bit Python
Downloading https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/ntx64_odbc_cli.zip
warning: no files found matching '*' under directory 'ibm_db_dlls'
warning: no previously-included files found matching 'config.py'
ibm_db.c
ibm_db.c(268): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
ibm_db.c(279): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
ibm_db.c(467): warning C4047: '!=': 'SQLHANDLE' differs in levels of indirection from 'int'
ibm_db.c(667): warning C4312: 'type cast': conversion from 'long' to 'SQLPOINTER' of greater size
ibm_db.c(699): warning C4312: 'type cast': conversion from 'long' to 'SQLPOINTER' of greater size
ibm_db.c(724): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
ibm_db.c(1257): warning C4312: 'type cast': conversion from 'long' to 'SQLPOINTER' of greater size
ibm_db.c(1305): warning C4244: 'function': conversion from 'Py_ssize_t' to 'SQLSMALLINT', possible loss of data
ibm_db.c(1307): warning C4244: 'function': conversion from 'Py_ssize_t' to 'SQLSMALLINT', possible loss of data
ibm_db.c(1309): warning C4244: 'function': conversion from 'Py_ssize_t' to 'SQLSMALLINT', possible loss of data
ibm_db.c(1305): warning C4996: 'PyUnicode_GetSize': deprecated in 3.3
c:\users\me\appdata\local\programs\python\python38\include\unicodeobject.h(177): note: see declaration of 'PyUnicode_GetSize'
ibm_db.c(1307): warning C4996: 'PyUnicode_GetSize': deprecated in 3.3
c:\users\me\appdata\local\programs\python\python38\include\unicodeobject.h(177): note: see declaration of 'PyUnicode_GetSize'
ibm_db.c(1309): warning C4996: 'PyUnicode_GetSize': deprecated in 3.3
c:\users\me\appdata\local\programs\python\python38\include\unicodeobject.h(177): note: see declaration of 'PyUnicode_GetSize'
ibm_db.c(1452): warning C4244: 'initializing': conversion from 'Py_ssize_t' to 'int', possible loss of data
ibm_db.c(1920): warning C4244: '=': conversion from 'INT_PTR' to 'int', possible loss of data
ibm_db.c(2019): warning C4244: '=': conversion from 'INT_PTR' to 'int', possible loss of data
ibm_db.c(2305): warning C4312: 'type cast': conversion from 'unsigned long' to 'SQLPOINTER' of greater size
ibm_db.c(2679): warning C4244: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data
ibm_db.c(5155): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
ibm_db.c(5155): warning C4996: 'PyUnicode_GetSize': deprecated in 3.3
c:\users\me\appdata\local\programs\python\python38\include\unicodeobject.h(177): note: see declaration of 'PyUnicode_GetSize'
ibm_db.c(5352): warning C4267: '=': conversion from 'size_t' to 'SQLINTEGER', possible loss of data
ibm_db.c(5387): warning C4267: '=': conversion from 'size_t' to 'SQLINTEGER', possible loss of data
ibm_db.c(5478): warning C4244: '=': conversion from 'Py_ssize_t' to 'SQLINTEGER', possible loss of data
ibm_db.c(5489): warning C4244: '=': conversion from 'Py_ssize_t' to 'SQLINTEGER', possible loss of data
ibm_db.c(5504): warning C4018: '<=': signed/unsigned mismatch
ibm_db.c(5520): warning C4018: '<=': signed/unsigned mismatch
ibm_db.c(5616): warning C4244: '=': conversion from 'Py_ssize_t' to 'SQLINTEGER', possible loss of data
ibm_db.c(5627): warning C4267: '=': conversion from 'size_t' to 'SQLINTEGER', possible loss of data
ibm_db.c(5641): warning C4018: '<=': signed/unsigned mismatch
ibm_db.c(5766): warning C4267: '=': conversion from 'size_t' to 'SQLINTEGER', possible loss of data
ibm_db.c(5489): warning C4996: 'PyUnicode_GetSize': deprecated in 3.3
c:\users\me\appdata\local\programs\python\python38\include\unicodeobject.h(177): note: see declaration of 'PyUnicode_GetSize'
ibm_db.c(5995): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
ibm_db.c(5966): warning C4101: 'curr_ptr': unreferenced local variable
ibm_db.c(5966): warning C4101: 'prev_ptr': unreferenced local variable
ibm_db.c(7734): warning C4047: '!=': 'SQLHANDLE' differs in levels of indirection from 'int'
ibm_db.c(7747): warning C4047: '=': 'SQLHANDLE' differs in levels of indirection from 'int'
ibm_db.c(8313): warning C4267: 'function': conversion from 'size_t' to 'int', possible loss of data
ibm_db.c(8318): warning C4267: 'function': conversion from 'size_t' to 'int', possible loss of data
ibm_db.c(10318): warning C4244: 'function': conversion from 'SQLINTEGER' to 'SQLSMALLINT', possible loss of data
ibm_db.c(10437): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
ibm_db.c(10454): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
ibm_db.c(10738): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
ibm_db.c(10805): warning C4047: '==': 'SQLINTEGER' differs in levels of indirection from 'void *'
   Creating library build\temp.win-amd64-3.8\Release\ibm_db.cp38-win_amd64.lib and object build\temp.win-amd64-3.8\Release\ibm_db.cp38-win_amd64.exp
Generating code
c:\users\me\appdata\local\temp\easy_install-vdcgwf_i\ibm_db-3.0.1\ibm_db.c(7195) : warning C4715: 'ibm_db_field_nullable': not all control paths return a value
Finished generating code
zip_safe flag not set; analyzing archive contents...
__pycache__.ibm_db.cpython-38: module references __file__
__pycache__.testfunctions.cpython-38: module MAY be using inspect.stack
tests.__pycache__.test_000_PrepareDb.cpython-38: module references __file__
tests.__pycache__.test_144_BindParamInsertStmtPARAM_FILE.cpython-38: module references __file__

****************************************
You are downloading a package which includes the Python module for IBM DB2/Informix.  The module is licensed under the Apache License 2.0. The package also includes IBM ODBC and CLI Driver from IBM, which is automatically downloaded as the python module is installed on your system/device. The license agreement to the IBM ODBC and CLI Driver is available in c:\users\me\appdata\local\programs\python\python38\Lib\site-packages\clidriver or c:\users\me\appdata\local\programs\python\python38\Lib\site-packages\ibm_db-3.0.1-py3.8.egg\clidriver.   Check for additional dependencies, which may come with their own license agreement(s). Your use of the components of the package and dependencies constitutes your acceptance of their respective license agreements. If you do not accept the terms of any license agreement(s), then delete the relevant component(s) from your device.
****************************************
creating c:\users\me\appdata\local\programs\python\python38\lib\site-packages\ibm_db-3.0.1-py3.8-win-amd64.egg
Extracting ibm_db-3.0.1-py3.8-win-amd64.egg to c:\users\me\appdata\local\programs\python\python38\lib\site-packages
Adding ibm-db 3.0.1 to easy-install.pth file

Installed c:\users\me\appdata\local\programs\python\python38\lib\site-packages\ibm_db-3.0.1-py3.8-win-amd64.egg
Processing dependencies for ibm_db
Finished processing dependencies for ibm_db

C:\Users\me\AppData\Local\Programs\Python\Python38\Scripts>
C:\Users\me\AppData\Local\Programs\Python\38\Scripts>easy\u install ibm\u db
搜索ibm_db
阅读https://pypi.org/simple/ibm_db/
正在下载https://files.pythonhosted.org/packages/98/cb/f77d9bd5f64246074af364cc30e20e3044c533890f3b67d30e89615c2fc5/ibm_db-3.0.1.tar.gz#sha256=a609e07295d16455d40df94ddd61b3d476606f5d44e3352103776e3ecbff185a
最佳匹配:ibm db 3.0.1
处理ibm_db-3.0.1.tar.gz
正在编写C:\Users\me\AppData\Local\Temp\easy\u install-vdcgf\u i\ibm\u db-3.0.1\setup.cfg
运行ibm_db-3.0.1\setup.py-q bdist_egg--dist dir C:\Users\me\AppData\Local\Temp\easy_install-vdcgf\u i\ibm_db-3.0.1\egg-dist-tmp-3p\u 6emad
检测到64位Python
正在下载https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/ntx64_odbc_cli.zip
警告:在目录“ibm\u db\u dlls”下找不到与“*”匹配的文件
警告:未找到与“config.py”匹配的以前包含的文件
ibm_db.c
ibm_db.c(268):警告C4267:“正在初始化”:从“size_t”转换为“int”,可能会丢失数据
ibm_db.c(279):警告C4267:“正在初始化”:从“size\u t”转换为“int”,可能会丢失数据
ibm_db.c(467):警告C4047:'!=':'SQLHANDLE'的间接寻址级别与'int'不同
ibm_db.c(667):警告C4312:“类型转换”:从“long”到更大大小的“SQLPOINTER”的转换
ibm_db.c(699):警告C4312:“类型转换”:从“long”到更大大小的“SQLPOINTER”的转换
ibm_db.c(724):警告C4244:“=”:从“Py_ssize_t”转换为“int”,可能会丢失数据
ibm_db.c(1257):警告C4312:“类型转换”:从“long”到更大大小的“SQLPOINTER”的转换
ibm_db.c(1305):警告C4244:“函数”:从“Py_ssize_t”转换为“SQLSMALLINT”,可能会丢失数据
ibm_db.c(1307):警告C4244:“函数”:从'Py_ssize_t'转换为'SQLSMALLINT',可能会丢失数据
ibm_db.c(1309):警告C4244:“函数”:从'Py_ssize_t'转换为'SQLSMALLINT',可能会丢失数据
ibm_db.c(1305):警告C4996:“PyUnicode_GetSize”:在3.3中已弃用
c:\users\me\appdata\local\programs\python38\include\unicode对象.h(177):注意:请参见“PyUnicode\u GetSize”的声明
ibm_db.c(1307):警告C4996:'PyUnicode_GetSize':在3.3中已弃用
c:\users\me\appdata\local\programs\python38\include\unicode对象.h(177):注意:请参见“PyUnicode\u GetSize”的声明
ibm_db.c(1309):警告C4996:'PyUnicode_GetSize':在3.3中不推荐使用
c:\users\me\appdata\local\programs\python38\include\unicode对象.h(177):注意:请参见“PyUnicode\u GetSize”的声明
ibm_db.c(1452):警告C4244:“正在初始化”:从“Py_ssize_t”转换为“int”,可能会丢失数据
ibm_db.c(1920):警告C4244:“=”:从“INT_PTR”转换为“INT”,可能会丢失数据
ibm_db.c(2019):警告C4244:“=”:从“INT_PTR”转换为“INT”,可能会丢失数据
ibm_db.c(2305):警告C4312:“类型强制转换”:从“unsigned long”转换为更大的“SQLPOINTER”
ibm_db.c(2679):警告C4244:“函数”:从'Py_ssize_t'转换为'int',可能会丢失数据
ibm_db.c(5155):警告C4244:“=”:从“Py_ssize_t”转换为“int”,可能会丢失数据
ibm_db.c(5155):警告C4996:“PyUnicode_GetSize”:在3.3中已弃用
c:\users\me\appdata\local\programs\python38\include\unicode对象.h(177):注意:请参见“PyUnicode\u GetSize”的声明
ibm_db.c(5352):警告C4267:“=”:从“size_t”转换为“SQLINTEGER”,可能会丢失数据
ibm_db.c(5387):警告C4267:“=”:从“size_t”转换为“SQLINTEGER”,可能会丢失数据
ibm_db.c(5478):警告C4244:“=”:从“Py_ssize_t”转换为“SQLINTEGER”,可能会丢失数据
ibm_db.c(5489):警告C4244:“=”:从“Py_ssize_t”转换为“SQLINTEGER”,可能会丢失数据

ibm_db.c(5504):警告C4018:“下面是Python+Db2启动技术说明之一:

在安装了Db2的未联网/离线机器上安装Python

下面是一个片段:

Db2产品可以在没有internet连接的情况下安装,但 Python模块和适配器可能需要连接到internet

如果未联网的机器可以连接internet代理服务器,则可能会工作 通过使用HTTP_PROXY环境变量轻松安装和 --pip的代理选项

但是如果没有代理/互联网连接机器,下面是一个例子 如何在W上安装它