本文来自网易云社区
作者:沈高峰
virtualenv + pip 安装python软件包是一种非常好的选择,在大部分情况下安装python软件包是不需要求助于sa的。
使用自己的一个工作副本也是写python的一个好习惯。
基本使用方式有下面几步:
1.先准备好virtualenv的环境
mkdir ~/dev virturalenv ~/dev
2.激活一下当前的virtualenv
source ~/dev/bin/activate
3.然后就可以用pip安装软件包了,所有软件包都会安装在当前virtualenv下
pip install XXX
当需lib依赖的时候,上面的方法就不奏效了,比如,装scrapy的时候,流程可以变成这样了。
pip install scrapy
提示 xmlversion.h No such file or directory
google/bing/baidu 一通,原来是缺少libxml2-dev 包
zaime上提交sa任务
sa装完 libxml2-dev
继续pip install scrapy
提示 xslt-config: not found
google/bing/baidu 一通,原来是缺少libxslt1-dev 包
提交sa任务
。。。
如何不找sa,安装好这些库呢,编译用的工具链sa都装好了。
virtualenv 生成的目录~/dev结构跟 / 基本一样,随便想想,在 ./configure 的时候把 --prefix 设置成~/dev应该就可以了。
于是开始折腾
先设置好环境变量,让gcc和ld能找到include 和lib 文件夹
export LD_LIBRARY_PATH=~/dev/lib export C_INCLUDE_PATH=~/dev/include export LIBRARY_PATH=~/dev/lib
其实,在激活virtualenv的时候,activate脚本已经修改了2个环境变量了,env一下就可以看到了
PATH=/home/shen/dev/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/gamesPS1=(dev)\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
scrapy依赖3个软件包libxml2 libxslt libffi ,下载他们
wget ftp://xmlsoft.org/libxml2/libxml2-2.9.2.tar.gzwget ftp://xmlsoft.org/libxml2/libxslt-git-snapshot.tar.gzwget ftp://sourceware.org/pub/libffi/libffi-3.2.tar.gz
依次解压,cd到相应目录下
./configure --prefix=~/dev && make && make install
有2个小坑,
libxml2 默认把include文件夹放到 ~/dev/include/libxml2 下,移动目录或者修改环境变量export C_INCLUDE_PATH=~/dev/include/libxml2:$C_INCLUDE_PATH
libffi 把 include 文件夹放到 ~/dev/lib/libffi-3.2/include 下,解决方法跟上面一样
之后就可以pip install scrapy了
好吧,折腾完了,发现好像也没啥收获。
其实,不想折腾也简单,提交一个sa任务,安装3个包就可以了。
再偷懒一点,直接安装python-scrapy 就可以了,最新的debian stable 下的scrapy已经是 0.24.2 了,不算太旧。不过貌似很多机器sa还没升级到最新的stable版本。
其实和配置个交叉编译环境或者装LFS有些类似,比那个更简单一些。
网易云免费体验馆,0成本体验20+款云产品!
更多网易研发、产品、运营经验分享请访问网易云社区。
相关文章:
【推荐】 交互设计如何为业务赋能——谈谈网易严选企业采购的主页设计
【推荐】 HashMap在并发场景下踩过的坑
【推荐】 网易云原生架构实践之服务治理