1.虚拟环境
1.1.Pipenv工作流
Pipenv是基于pip的Python包管理工具,它和pip的用法非常相似,可以看作pip的加强版,它的出现解决了旧的pi p+virtualenv+requirement.txt的工作方式的弊端。具体来说,它是pip、Pipfile和Virtualenv的结合体,它让包安装、包依赖和虚拟环境管理更加方便,使用它可以实现高效的Python项目开发工作流。
使用pip安装pipenv
# 安装pipenv
pip install pipenv
# 在linux或macOS系统中
# 使用sudo全局安装:
sudo pip install pipenv
# 添加--user选项执行用户安装
pip install --user pipenv
# 检查Pipenv是否安装成功
pipenv --version
# 退出虚拟环境
exit
1.2 创建虚拟环境
在Python中,虚拟环境是隔离的Python解释器环境。通过创建虚拟环境,你可以拥有一个独立的Python解释器环境。这样做的好处是可以为每一个项目创建独立的Python解释器环境,因为不同的项目常常会依赖不同的库或Python版本。使用虚拟环境可以保持全局Python解释器环境的干净,避免包和版本的混乱,并且可以方便地区分和记录每个项目的依赖,以便在新环境下复现依赖环境。
虚拟环境通常使用Virtualenv来创建,但为了更方便地管理虚拟环境和依赖包,我们将使用集成了Virtualenv的Pipenv。
# 1.工作目录切换到项目的根目录
# 2.创建虚拟环境
创建目录
mkdir article_spider
进入目录
cd article_spider
创建虚拟环境
pipenv install
# 3.激活虚拟环境
pipenv shell
创建结果如下图:
1.3管理依赖
一个程序通常会使用很多的Python包,即依赖(dependency)。而程序不仅仅会在一台电脑上运行,程序部署上线时需要安装到远程服务器上,也许会把它分享给朋友。为了能顺利运行程序,他们不得不几下所有依赖包,然后使用pip或pipenv安装,这些重复无用的工作当然应该避免。在以前我们通常使用pip搭配一个requirement.txt文件来记录依赖。但requirement.txt需要手动维护,在使用上不够灵活。pipenv的出现就是为了替代难于管理的requirement.txt。
在创建虚拟环境时,如果项目根目录下没有Pipfile文件,pipenv install命令还会在项目文件夹根目录下创建Pipfile和Pipfile.lock文件,前者用来记录项目依赖包列表,后者记录了固定版本的详细依赖包列表。当我们使用Pipenv安装/删除/更新依赖包时,Pipfile和Pipfile.lock会自动更新。
2.创建scrapy爬虫
# 创建虚拟环境
mkvirtualenv article_spider
# 查看当前虚拟环境
workon
# 进入虚拟环境
workon article_spider
# 退出虚拟环境
deactivate
# 删除虚拟环境
rmvirtualenv article_spider
# 创建爬虫项目
scrapy startproject zhaopin
# 进入爬虫项目目录
cd zhaopin
# 创建爬虫
scrapy genspider lagou www.lagou.com
scrapy genspider -t crawl lagou www.lagou.com
配置pycharm解释器为虚拟环境
File -> Settings -> Project:zhaopin -> Project Interpreter -> article_spider