美文网首页
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