新装了一个centos系统,想在里面配置一个基于python3的scrapy框架,刚开始在网上找到的一些方法都是直接装一个python3的环境,然而python2的环境又不能删除,因为centos上有一些功能是基于python2的,例如常用的yum。在python2环境下直接就能把scrapy装好,然而python3死活装不上,一路BUG。后来一想,应该是python2和python3两个环境混在一起,导致python3的一些包不能正确调用。于是我就创建了一个python3的虚拟环境,一次完美解决了。
1. 安装python3
- 下载python3的安装包
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
- 安装编译需要的关联库
yum instal -y zlib zlib-devel (在我的系统中只缺少这两个包,其他系统中可能缺少其他的包,同样用yum安装即可)
- 解压,编译,安装
#解压
tar -zxvf Python-3.6.3.tgz
#进入解压后的目录
cd Python-3.6.3
#编译
./configure --prefix=/usr/local/python3 (prefix表示安装的路径,我安装在/usr/local中,也可以安装其他地方)
#安装
make && make install
- 创建python3的软连接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
(软连接的文件名不要用python,因为python已经指向了python2.7)
- 创建pip3的软连接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
- 现在就可以在命令行中直接输入python3来打开python3的shell,也可以直接使用pip3下载python3的库。
2. 创建python3的虚拟环境
- 下载virtulenv
pip3 install virtulenv
- 创建virtulenv软连接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
- 创建虚拟环境
在命令行直接输入:
virtulenv 虚拟黄环境名 -p /usr/bin/python3
- 进入虚拟环境
#cd进入虚拟环境的目录
source ./bin/activate
- 退出虚拟环境
#在命令行输入
deactivate
3.在python3虚拟环境中安装scrapy框架
- 先进入python3的虚拟环境 (source ./bin/activate)
- 安装pip包管理
yum install -y python-pip
- 配置pip安装源为阿里云 http://mirrors.aliyun.com/help/pypi。
- 我觉得这是天朝必备的一个步骤,否则安装软件那龟速不忍直视。
-
mkdir ~/.pip
-
vim ~/.pip/pip.conf
-
# 改为如下内容
-
[global]
-
index-url = http://mirrors.aliyun.com/pypi/simple/
-
[install]
-
trusted-host=mirrors.aliyun.com
- 安装编译器和开发库之类的,假如你们也没安装的话
yum -y install gcc gcc-c++ kernel-devel python-devel libxslt-devel libffi-devel openssl-devel
- 安装主角
Scrapy
pip3 install scrapy
- 安装
MySQL-python
- Python连接MySQL的模块
easy_install MySQL-python
- 如果遇到
mysql_config not found
- 之前的博文有提过这个错误,不过是在Ubuntu下的解决方案-安装
libmysqlclient-dev
- 然而在CentOS的源中并没有这个包。而安装
mysql-devel
即可。
yum install -y mysql-devel
- 安装
MySQL
数据库yum groupinstall mariadb mariadb-client
- MariaDB其实可以看做MySQL新版吧,具体缘由自行百度。
- 安装
redis
NoSQL数据库 - 会用到配合bloomfilter做url去重。
yum install -y redis
- 安装
BloomFilter
模块
pip3 install bloomfilter
- 其它爬虫常用库和平时使用的方法一样,直接pip3 install 包名 即可。bs4、lxml、pyquery、requests等
参考博文: https://uublog.com/article/20170308/centos7-install-scrapy/