美文网首页
解决pip安装ibm-db过慢问题(包中包)

解决pip安装ibm-db过慢问题(包中包)

作者: goooBelieve | 来源:发表于2020-04-16 11:42 被阅读0次

    一、背景

        安装redash的时候,会依赖到 ibm-db这个包,本身这个包只有 642kb大小,但是安装确及其的慢,而且无论切换到国内那个镜像地址 都无法解决

    卡在这个包久久无法动弹

    没办法,只能看看 这个包的源码了,我们先从清华的镜像地址下载这个包 https://pypi.tuna.tsinghua.edu.cn/packages/98/cb/f77d9bd5f64246074af364cc30e20e3044c533890f3b67d30e89615c2fc5/ibm_db-3.0.1.tar.gz

    解压到自己电脑上,并打开 setup.py文件,查找原因,发现在第181行代码处,有个逻辑:

    大概意思就是,当不存在clidriver目录的时候,就去这个地址:

    https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/

    下载指定的驱动文件

    算是找到原因了,即 ibm-db这个包在安装过程中 会去 上面这个地址下载驱动文件,安装慢的原因就是一直在等待驱动文件的下载,我们打开这个地址,选择一个下载看看:

    20M的文件要下载1个多小时

    二、解决方案

    问题找到了,如何解决呢?

    我们就不能依赖 pip install ibm-db 这个命令来安装了,只能自己手动来执行安装

    具体思路是,自己提前先将两个文件都下载下来

    ibm-db_3.0.1.tar.gz 包文件  以及 linuxx64_odbc_cli.tar.gz 驱动文件

    然后将驱动文件解压到 包文件的目录下面,手动执行

    python setup.py install

    三、实施过程

        1.在服务器 或本地 提前下载好两份文件,放到执行目录下

     wget  https://pypi.tuna.tsinghua.edu.cn/packages/98/cb/f77d9bd5f64246074af364cc30e20e3044c533890f3b67d30e89615c2fc5/ibm_db-3.0.1.tar.gz        

    wget   https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/linuxx64_odbc_cli.tar.gz 

        2.下载完成之后,解压包

    tar -zxvf ibm_db-3.0.1.tar.gz

    tar -zxvf linuxx64_odbc_cli.tar.gz -C ibm_db-3.0.1/  #解压到 ibm_db包目录下

    驱动文件解压 刚好目录就是 clidriver,解压完成之后的目录状况:

    解压完成后的目录

        3.执行python 命令安装包

    python3 setup.py install 

    等待安装完成即可,中间会处很多warning,影响不大,同时不要下错驱动包,windows 下载Windows驱动包,mac的下载mac对应的

    四、redash docker容器里面安装

        上面说了如何手动安装 ibm-db包,但是redash是自动到docker 容器里面安装的,不好手动干预,所以这里我们直接修改 redash项目下的 Dockerfile文件,添加相应的语句

    # 把两个包  copy到 容器里面

    COPY packages/ibm_db-3.0.1.tar.gz packages/linuxx64_odbc_cli.tar.gz ./

    # 解压 包

    RUN tar -zxvf ibm_db-3.0.1.tar.gz

    # 将驱动程序解压到包 目录内

    RUN tar -zxvf linuxx64_odbc_cli.tar.gz -C ibm_db-3.0.1/

    #切换工作目录 到 包目录内

    WORKDIR  /app/ibm_db-3.0.1

    #执行 安装命令

    RUN python setup.py install

    #将工作目录切换回来

    WORKDIR /app

    Dockerfile修改内容

    相关文章

      网友评论

          本文标题:解决pip安装ibm-db过慢问题(包中包)

          本文链接:https://www.haomeiwen.com/subject/fxtrvhtx.html