美文网首页
pip 无 root 权限安装包时依赖C语言库

pip 无 root 权限安装包时依赖C语言库

作者: 书SHU | 来源:发表于2017-05-03 09:49 被阅读80次

    如果能够使用系统的目录,那么直接使用系统的最好,如果系统没有,而且又没有 root 权限来安装到系统,这时候需要自己编译相关第三方库。

    以安装 cryptograph 为例(参考自 cryptograph 官方手册)。

    cryptograph 依赖 openssl,此时可将 openssl 安装为静态依赖(即安装到某个指定的目录,比如你的virtaulenv工程目录),查看 openssl 官网 找到某个版本,这里使用1.0.2k

    set -e
    
    workon myvirtualenvwrapper-project
    
    mkdir -p build
    cd build
    
    OPENSSL_VERSION="1.0.2k"
    CWD=$(pwd)
    
    
    pip install -U setuptools
    pip install -U wheel pip
    
    
    curl -O https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz
    tar xvf openssl-${OPENSSL_VERSION}.tar.gz
    cd openssl-${OPENSSL_VERSION}
    ./config no-shared no-ssl2 no-ssl3 -fPIC --prefix=${CWD}/openssl
    make && make install
    cd ..
    
    
    LIBFFI_VERSION="3.2.1"
    wget ftp://sourceware.org/pub/libffi/libffi-${LIBFFI_VERSION}.tar.gz
    tar xvf libffi-${LIBFFI_VERSION}.tar.gz
    cd libffi-${LIBFFI_VERSION}
    ./configure --prefix=${CWD}/libffi
    make && make install
    
    cd ..
    
    PKG_CONFIG_PATH="${CWD}/libffi/lib/pkgconfig" CFLAGS="-I${CWD}/openssl/include -I${CWD}/libffi/lib/libffi-3.2.1" LDFLAGS="-L${CWD}/openssl/lib -L${CWD}/libffi/lib64" pip wheel cryptography
    
    

    上面最重要的部分是最后的参数设置,相关参数需要根据对应C库编译时用到的参数在pip install xxx前面缀上即可。

    又比如安装 MySQL-python

    CFLAGS="-I/home/xxx/installed/usr/include/mysql" LDFLAGS="-L/home/xxx/installed/usr/lib64/mysql" pip install MySQL-python
    

    相关文章

      网友评论

          本文标题:pip 无 root 权限安装包时依赖C语言库

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