安装virtualenv(Scrapy)
Windows 10家庭中文版,Python 3.6.4,
virtualenv用来提供一个应用程序独立的 运行环境,这个独立是相对于系统的Python运行环境而言,开发者可以在virtualenv建立的运行环境中安装各种Python的包以及运行自己的应用程序,而这些操作都不会对系统的Python运行环境有任何影响。
本文介绍了第一次安装virtualenv的步骤,以及建立一个虚拟运行环境,并在虚拟运行环境上安装Scrapy。
参考:https://virtualenv.pypa.io/en/stable/installation/ (官文)
注意:Windows系统上会有一些特别的提示,请安考官文。
1.安装
使用pip命令:pip3 install virtualenv
在安装时范了一个错误,把virtualenv拼写错了,导致安装失败。

安装成功后,Python的目录变化:
、


Scripts下多了一个virtualenv.exe可执行程序,创建虚拟运行环境正是使用此程序。
2.建立虚拟运行环境
使用virtualenv.exe建立虚拟运行环境,首先,创建一个 空目录(或许非空目录也可以,但没试过)。

打开命令行工具,进入到空目录env0626的父目录,执行virtualenv env0626即可创建 基于目录env0626 的 虚拟运行环境:

命令执行完毕的env0626目录:
特别说明,目录下的Scripts包含了可执行程序,比如pip、easy_install等,可以用于安装Python软件,,如果操作系统是Linux等,此目录名会是bin。


3.激活虚拟运行环境
需要使用目录Scripts中的activate批处理程序,在命令行中输入activate即可。
使用python命令可以进入Python交互式命令行。

初步建立的虚拟运行环境安装的包:只有三个(就用过pip,比较熟悉)

还期待Python版本会升级到最新的3.6.5,看来并没有,说明,系统的Python解释器被拷贝到虚拟环境了。
那么,是否可以做升级呢?将虚拟运行环境的Python版本独自升级?(后续会尝试)
4.在虚拟运行环境中安装Scrapy
使用activate命令激活虚拟运行环境,在执行pip install scrapy即可——和系统环境下安装是相同的。


一下子安装了好多包啊!使用pip list查看详情!

5.在虚拟运行环境下运行Scrapy
在env0626下建立工作目录ws,再拷贝一个基于Scrapy的爬虫程序到其中:

# https://docs.scrapy.org/en/latest/intro/overview.html import scrapy class QuotesSpider(scrapy.Spider):
name = 'quotes'
start_urls = [
'http://quotes.toscrape.com/tag/humor',
] def parse(self, response):
for quote in response.css('div.quote'):
yield {
'text': quote.css('span.text::text').extract_first(),
'author': quote.xpath('span/small/text()').extract_first(),
} next_page = response.css('li.next a::attr("href")').extract_first()
print('next_page = ', next_page)
if next_page is not None:
yield response.follow(next_page, self.parse)
激活虚拟运行环境,执行爬虫程序:出错了!提升 ModuleNotFoundError: No module named 'win32api'


安装win32api也失败了:没有找到!
(env0626) D:\ws\env0626\ws>pip install win32api
Collecting win32api
Could not find a version that satisfies the requirement win32api (from versions: )
No matching distribution found for win32api

原来是要安装pywin32啊!用了9MB的流量呢!
(env0626) D:\ws\env0626\ws>pip install pywin32
Installing collected packages: pywin32
Successfully installed pywin32-223
此问题的参考链接
再来执行爬虫程序:
这次成功了,结果保存在了quotes.json文件中。


6.后记
除了activate命令,还有一个deactivate命令,作用和activate命令相反,用于 删除虚拟运行环境。不过,这个命令有必要吗?孤直接删除虚拟运行环境不是很好?
上面在虚拟运行环境下使用pip安装时,好多程序都是网上下载的,浪费流量啊,那么,是否可以从系统Python环境中直接拷贝呢?
有个异常,在虚拟运行环境执行exit命令后,命令行窗口就退出了,预期不是应该返回到命令行窗口的吗?
virtualenv官文中还有不少 详细内容,请查看并dig。
之前在学习Flask时遇到过virtualenv,但没有用文档记录,这次Scrapy再次遇到了,那就记录下吧,好像这个virtualenv很有用,不过,孤还需要更多场景来体会才是。
安装virtualenv(Scrapy)的更多相关文章
- Python虚拟环境安装virtualenv
解决了多个版本共存的问题 virtualenv 为每个不同项目提供一份 Python 安装.它并没有真正安装多个 Python 副本,但是它确实提供了一种巧妙的方式来让各项目环境保持独立. 安装vir ...
- 在centOS7.2里安装virtualenv和flask
1) 安装pip工具 #wget https://bootstrap.pypa.io/get-pip.py #python get-pip.py 2) 安装virtualenv,并创建一个开发环境 # ...
- Mac下安装virtualenv, 并在PyCharm中使用
今天在安装一个leader写的package的时候,同事建议安装到虚拟环境中,再在PyCharm里使用该虚拟环境即可.此处记录下经过: 开发Python应用的时候,有时会遇到不同的Python应用依赖 ...
- windows下安装virtualenv并且配置指定环境
下面是在windows下通过virtualenv创建虚拟环境, 包括 : 1. 安装virtualenv(使用pip可直接安装) 2. 使用virtualenv创建指定版本的虚拟环境 3. 进入虚拟环 ...
- macos 下安装virtualenv,virtualenvwrapper,然后在pycharm中正常配置方法日志
1.安装virtualenv或virtualenvwrapper pip install virtualenv pip install virtualenvwraper 注意pip的版本号(查看 pi ...
- Python3虚拟环境安装:virtualenv、virtualenvwralpper
一:通过pip3(因python2和3共存,前文修改过pip3软连接,pip3可以安装到python3)安装virtualenv,pip3 install virtuale 二:建立虚拟环境文件目录 ...
- Ubuntu18.04安装Virtualenv虚拟环境
在Ubuntu18.04安装Virtualenv虚拟环境 [实验环境]: 在这台电脑上已经安装了python3 [安装参考] 1.查看是否已安装virtualenv virtualenv --vers ...
- Ubuntu16.04怎么安装virtualenv虚拟环境
最近安装virtualenv的python虚拟环境,在网上找了很多,尝试了很多,都有各种问题,最终搞定后,给大家分享下我的过程,希望大家少走弯路. 本次安装是基于Ubuntu16.04Linux版本安 ...
- Mac安装Virtualenv & PyCharm使用Virtualenv
我们使用Python开发的时候,每个项目可能需要不同的Python版本,这时候我们就需要Virtualenv配置虚拟环境. Mac安装Virtualenv sudo pip install virtu ...
随机推荐
- 【BZOJ4025】二分图(线段树分治,并查集)
[BZOJ4025]二分图(线段树分治,并查集) 题面 BZOJ 题解 是一个二分图,等价于不存在奇环. 那么直接线段树分治,用并查集维护到达根节点的距离,只计算就好了. #include<io ...
- 《Linux内核设计与实现》学习总结 Chap3
第三章 进程管理 进程是Unix操作系统抽象概念中最基本的一种.我们拥有操作系统就是为了运行用户程序,因此,进程管理就是所有操作系统的心脏所在. 3.1进程 概念: 进程:处于执行期的程序.但不仅局限 ...
- 【THUSC2017】杜老师
题目描述 杜老师可是要打+∞年World Final的男人,虽然规则不允许,但是可以改啊! 但是今年WF跟THUSC的时间这么近,所以他造了一个idea就扔下不管了…… 给定L,R,求从L到R的这R− ...
- js字符串替换(时间转换)
转: js中字符串全部替换 废话不多说,直接发结果 在js中字符串全部替换可以用以下方法: str.replace(/需要替换的字符串/g,"新字符串") 比如: "yy ...
- O(1)时间复杂度求栈中最小元素
import java.util.Stack; /** * 功能:O(1)时间复杂度求栈中最小元素 * 思路:空间换取时间,使用两个栈,stack1栈存储数据,stack2栈存储最小值: * stac ...
- gdb调试4--回退
加入你正在使用GDB7.0以上版本的调试器并且运行在支持反向调试的平台,你就可以用以下几条命令来调试程序: reverse-continue 反向运行程序知道遇到一个能使程序中断的事件(比如断点,观察 ...
- print命令
#%s为变量的占位符,s是string的简写,可接受字符. %d也是占位符,用于接受数字name = input("name:")age = input("age:&qu ...
- label和fieldset标签
一.label标签 作用:可以通过for属性关联input标签的 id 属性,这样可以实现在点击label标签的内容时,可以使input文本框中获取输入的光标. <body> <la ...
- nltk31_twitter情感分析
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&am ...
- Oracle 中常用数据字典大总结
原文出处:小宝马的爸爸 - 梦想的家园 前面呢,也断断续续的介绍了一些诸如 Sql*Plus 等等关于 Oracle 的基本的内容, 对于 Oracle 这样的大型数据库呢,自身的运行和维护也是个不得 ...