zoukankan      html  css  js  c++  java
  • 82.python 手动安装ibm_db2步骤

    1.python 手动安装ibm_db2步骤:(在最下面我贴着我下载包的云盘路径,但不保证对你有用)

    """说实话这个包是我见过最恶心的包,整整弄了三天,网上的博客我是服了,驴头不对马嘴,自己写的博客估计以后自己都看不懂么,所以我自己整理了一篇."""

    windows:

    
    """非常遗憾的告诉你,ibm_db2我安装好了之后操作不了数据库,建议使用pyodbc 直接pip可以安装可以操作,这又是一个神坑啊"""
    
    1.在命令pip install ibm_db -i https://pypi.douban.com/simple/,之后你会发现卡住了,但是下面出现了一个下载ibm_db的tar.gz的连接.
        
    2.复制连接到浏览器中,或者出去,不管咋样下到这个包解压之后会出现一个ibm_db-xxx的目录,后面的xxx是版本号,将这个目录
    直接拷贝到C:UsersyztPycharmProjects	est_envvenvLibsite-packages你的环境的site-packages目录下
        
    3.这个时候不要急着退出,
    打开cmd,cd到你的ibm_db-3.0.2刚才移动过来ibm_db目录下(我用的是虚拟环境)所以目录的路径是下面这个,
    C:UsersyztPycharmProjects	est_envvenvLibsite-packagesibm_db-3.0.2
    你的根据自己的配置cd进去之后执行如下命令:
    C:UsersyztPycharmProjects	est_envvenvScriptspython.exe setup.py install(我用的虚拟环境)
        
    4.这个时候回报错出现第二个需要下载的文件路径如下:(不管是用什么方法都可以只要下下来,解压出来会生成一个clidriver的
    文件夹,直接将文件拷贝到C:UsersyztPycharmProjects	est_envvenvLibsite-packagesibm_db-3.0.2路径下)
    https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/ntx64_odbc_cli.zip
        
    5.继续执行在cmd中执行C:UsersyztPycharmProjects	est_envvenvScriptspython.exe setup.py install,这个
    时候会再次报错,这次会出现一个db2_xxx.dll文件找不到,这个是db2的客户端的可执行文件,需要去ibm的网站下载(记住需要注
    册账号才能下载),路径如下,看到图了之后选择window64或者linux你随意.进入之后,会出现两个选择框都点着点击继续,然后页
    面会出现第二幅图的样子,红框中的是在window上可以点击执行的文件.(红框下面的两个比较坑,下出来解压之后是两个.msm文件不会用)
    https://www.ibm.com/support/pages/node/1116777
    
    6.红框中的下载好了之后直接点击运行就可以了,之后直接加入环境变量(随意加,不存在java呢种还需要创建JAVA_HOME变量这种
    方式,只要加进去就可以)最后执行下面的命令(cmd中),就安装好了:
        
    C:UsersyztPycharmProjects	est_envvenvScriptspython.exe setup.py install(我用的虚拟环境)
    
    
    7.这个时候你去项目中导包,可能又会报错ImportError: DLL load failed: 找不到指定的模块。这个是因为刚才的clidriver文件夹
    需要给,经过第六步生成的这个路径C:UsersyztPycharmProjects	est_envvenvLibsite-packagesibm_db-3.0.2-py3.6.egg
    下面赋值一份.之后就可以直接在项目中使用了
    
    注意:
        不要去网上下载人家云盘里面的ibm_db版本包,呢都是以前的版本,db2呢个客户端的.dll文件根本找不到它,跟着你的pip显现的
    版本下载即可(否则你可能安装的怀疑人生)
    

    图一:

    图二:

    链接:https://pan.baidu.com/s/1H0F48AG7J7MHwvwS-eM2zw
    提取码:dfq0

    linuxs:

    关于这个db2数据库我又被恶心了一把
    1.安装pyodbc
    pip install pyodbc -i https://pypi.douban.com/simple   
    直接报错:error: command 'gcc' failed with exit status 1
    搜索很简单解决: yum install unixODBC unixODBC-devel
        
    2.安装db2 odbc操作客户端工具,window里面有下载连接记得换成linux的就行了
    [root@localhost opt]# ls
    odbc_cli   test.py linuxx64_odbc_cli.tar.gz   test2_db2.py
    
    tar -xvf linuxx64_odbc_cli.tar.gz   # 直接解压
    
    3.配置环境变量
    # db2数据odbc路径配置
    export DB2_CLI_DRIVER_INSTALL_PATH=/opt/odbc_cli/clidriver
    export LD_LIBRARY_PATH=/opt/odbc_cli/clidriver/lib
    export LIBPATH=/opt/odbc_cli/clidriver/lib
    export PATH=/opt/odbc_cli/clidriver/bin:$PATH
    export PATH=/opt/odbc_cli/clidriver/adm:$PATH
    
    4.配置odbc连接
    01:https://www.cnpython.com/qa/74714 # 看这个博客你会知道需要下载db2 odbc操作的东西对没问题就是他
    02:但是基本没有odbc关于连接db2的完整配置的博客
    [root@localhost opt]# odbcinst -j   # 查看unixodbc操作的配置驱动文件
    unixODBC 2.3.1
    DRIVERS............: /usr/local/etc/odbcinst.ini  # 这个是driver驱动的文件,配置了它就可以使用驱动了
    SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini    # 注意这个是DNS解析文件(也就是配置好ip,端口他给你解析)
    FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
    USER DATA SOURCES..: /usr/local/etc/odbc.ini
    SQLULEN Size.......: 8
    SQLLEN Size........: 8
    SQLSETPOSIROW Size.: 8
    
    03:vim /root/odbcadd.txt
    [DB2]
    Driver      = db2
    Description = My MS SQL DB2
    
    odbcinst -i -s -f /root/odbcadd.txt -l  # 使用这个命令将写的配置文件,加载进去/usr/local/etc/odbc.ini(但是没完)
    
    [root@localhost opt]# cat /usr/local/etc/odbc.ini
    [DB2]
    Driver      = db2
    Description = My MS SQL DB2
    
    04:编辑驱动文件,写入如下内容(这个是驱动),driver中的路径需要根据你安装db2_odbc的软件目录确定,我在/opt安装的所以路径如下/opt/odbc_cli/clidriver/lib/libdb2.so
        
    [root@localhost opt]# cat /usr/local/etc/odbcinst.ini
    [db2]
    Description = DB2 Driver
    Driver      = /opt/odbc_cli/clidriver/lib/libdb2.so
    FileUsage   = 1
    DontDLClose = 1
    
    05:编写python脚本连接测试
    [root@localhost opt]# cat test2_db2.py 
    import pyodbc
    class DB2Opera(object):
    
        def __init__(self, host, user, password, port="50000", database=""):
            self.host = host
            self.user = user
            self.password = password
            self.port = int(port)
            self.database = database
        def conn(self):
            self.conn = pyodbc.connect(
                'Driver={db2}; '   # 驱动与DNS二选一即可:它对应的是cat /usr/local/etc/odbcinst.ini  
                # 'DSN=DB2;'  # 它对应的是cat /usr/local/etc/odbc.ini(与上面的参数二选一即可)
                'Hostname=%s; '
                'Port=%s; '
                'Protocol=TCPIP; '
                'Database=%s; '
                'CurrentSchema=schema; '
                'UID=%s; '
                'PWD = %s;' % (self.host, self.port, self.database, self.user, self.password)
            )
            self.cur = self.conn.cursor()
            print("连接成功")
    if __name__ == '__main__':
        mysql_obj = DB2Opera("10.20.86.45", "db2inst1", "11111111", database="ca61gm")
        mysql_obj.conn()
    
    06:执行成功
    [root@localhost opt]# python3 test2_db2.py 
    连接成功
    
    参考链接:根据后面的星星判断重要程度(越重要星星越多)
        https://blog.csdn.net/qq_35342617/article/details/88780545  ***
        http://blog.chinaunix.net/uid-8795823-id-2013290.html  ****
        https://blog.csdn.net/toseekin/article/details/107901810 *
        https://www.cnpython.com/qa/74714 *
        https://blog.csdn.net/avwjq/article/details/43532853  *****
        https://blog.csdn.net/u010587433/article/details/46799037  **
    
  • 相关阅读:
    《Machine Learning in Action》—— 白话贝叶斯,“恰瓜群众”应该恰好瓜还是恰坏瓜
    《Machine Learning in Action》—— 女同学问Taoye,KNN应该怎么玩才能通关
    《Machine Learning in Action》—— Taoye给你讲讲决策树到底是支什么“鬼”
    深度学习炼丹术 —— Taoye不讲码德,又水文了,居然写感知器这么简单的内容
    《Machine Learning in Action》—— 浅谈线性回归的那些事
    《Machine Learning in Action》—— 懂的都懂,不懂的也能懂。非线性支持向量机
    《Machine Learning in Action》—— hao朋友,快来玩啊,决策树呦
    《Machine Learning in Action》—— 剖析支持向量机,优化SMO
    《Machine Learning in Action》—— 剖析支持向量机,单手狂撕线性SVM
    JVM 字节码指令
  • 原文地址:https://www.cnblogs.com/liuzhanghao/p/13453021.html
Copyright © 2011-2022 走看看