本文来自网易云社区

作者:沈高峰

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的时候,流程可以变成这样了。

  1. pip install scrapy

  2. 提示 xmlversion.h  No such file or directory

  3. google/bing/baidu 一通,原来是缺少libxml2-dev 包

  4. zaime上提交sa任务

  5. sa装完 libxml2-dev

  6. 继续pip install scrapy

  7. 提示  xslt-config: not found

  8. google/bing/baidu 一通,原来是缺少libxslt1-dev  包

  9. 提交sa任务

  10. 。。。

如何不找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个小坑,

  1. libxml2 默认把include文件夹放到 ~/dev/include/libxml2 下,移动目录或者修改环境变量export C_INCLUDE_PATH=~/dev/include/libxml2:$C_INCLUDE_PATH

  2. 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+款云产品!

更多网易研发、产品、运营经验分享请访问网易云社区

相关文章:
【推荐】 数据分析怎么更直观?十分钟构建数据看板
【推荐】 中秋福利 | 10本技术图书(编程语言、数据分析等)免费送

virtualenv简介以及一个比较折腾的scrapy安装方法的更多相关文章

  1. Python3 Scrapy 安装方法

    Python3 Scrapy 安装方法 (一脸辛酸泪) 写在前面 最近在学习爬虫,在熟悉了Python语言和BeautifulSoup4后打算下个爬虫框架试试. 没想到啊,这坑太深了... 看了看相关 ...

  2. Scrapy安装方法

    Scrapy安装在Python2.7环境下 1.配置环境变量: 2.安装基础软件 4个(64位系统) 安装twisted: C:\Users\Administrator>pip  install ...

  3. Python Scrapy在windows上的安装方法

    如果想要学习爬虫,肯定会了解Scrapy,但安装Scrapy的方法相对于安装其他第三方库麻烦一点. 下面总结一下在我的电脑上安装Scrapy的方法,我的电脑是Windows10,32位操作系统.有如下 ...

  4. 做一个有产品思维的研发:Scrapy安装

    每天10分钟,解决一个研发问题. 如果你想了解我在做什么,请看<做一个有产品思维的研发:课程大纲>传送门:https://www.cnblogs.com/hunttown/p/104909 ...

  5. Dubbo简介---搭建一个最简单的Demo框架

    Dubbo背景和简介 Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起. 单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本.  ...

  6. 机器学习 101 Mahout 简介 建立一个推荐引擎 使用 Mahout 实现集群 使用 Mahout 实现内容分类 结束语 下载资源

      机器学习 101 Mahout 简介 建立一个推荐引擎 使用 Mahout 实现集群 使用 Mahout 实现内容分类 结束语 下载资源 相关主题   在信息时代,公司和个人的成功越来越依赖于迅速 ...

  7. 测试框架httpclent 1.HttpClient简介及第一个demo

    httpclient就是一个模拟 发送http请求的一个工具. 首先在pom.xml文件里面添加工具类 <dependencies> <dependency> <grou ...

  8. Python爬虫框架Scrapy安装使用步骤

    一.爬虫框架Scarpy简介Scrapy 是一个快速的高层次的屏幕抓取和网页爬虫框架,爬取网站,从网站页面得到结构化的数据,它有着广泛的用途,从数据挖掘到监测和自动测试,Scrapy完全用Python ...

  9. Scrapy安装向导

    原文地址 https://doc.scrapy.org/en/latest/intro/install.html 安装Scrapy Scrapy运行在python2.7和python3.3或以上版本( ...

随机推荐

  1. bootstrap-table 数据表格行内修改

    bootstrap-table 数据行内修改js中设置列的属性 editable : { type : 'text',//数据显示在文本框内 emptytext : "--",// ...

  2. Python基础学习之变量赋值

    1.赋值操作符 Python语言中,等号(=)是主要的赋值操作符: >>> aInt=-100 >>> aString='this is a string' > ...

  3. April 26 2017 Week 17 Wednesday

    We read the world wrong and say that it deceives us. 我们把世界看错了,反而说它欺骗了我们. It is not a cakewalk to see ...

  4. C++学习之拷贝构造函数

    嘛是拷贝构造函数? 如果一个构造函数的第一个参数是’自身类‘ ‘类型’的引用,且任何额外参数都有默认值,则此构造函数是拷贝构造函数.如: [代码1] 1 2 3 4 5 6 class A{ publ ...

  5. IOS Post请求(请求服务器)

    @interface HMViewController () @property (weak, nonatomic) IBOutlet UITextField *usernameField; @pro ...

  6. Uva 11384 正整数序列

    题目链接:https://vjudge.net/problem/UVA-11384 题意:给定正整数 n,用最少的操作把序列 1,2,,,n 全部变成 0: 操作是:每次可以从序列中选择一个或者多个, ...

  7. 【[TJOI2018]碱基序列】

    题目 为什么没人用\(SAM\)啊 我们先把原来的模式串建一遍\(SAM\),之后我们就可以求出\(SAM\)上每一个节点的\(|endpos|\)就可以知道每一个子串出现的次数了,也就是在模式串上的 ...

  8. VMware 12安装Mac OS X 10.11

    去年写了一篇安装Mac OS X 10.10的文章,看到大家都想体验OS X,大多数都能成功,但也在其中发现了一些问题,所以更新一下,希望对大家有所帮助.   1048VMware 11安装Mac O ...

  9. React后台管理系统-订单管理

    1.订单管理页面和商品管理页面类似,都是一个搜索组件+列表组件 2.搜索框search组件 import React from 'react';   class ListSearch extends ...

  10. ios数据持久化--CoreData框架的介绍和使用

    1.Core Data 是数据持久化存储的最佳方式 2.数据最终的存储类型可以是:SQLite数据库,XML,二进制,内存里,或自定义数据类型 在Mac OS X 10.5Leopard及以后的版本中 ...