安装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 ...
随机推荐
- BZOJ 2243 染色 | 树链剖分模板题进阶版
BZOJ 2243 染色 | 树链剖分模板题进阶版 这道题呢~就是个带区间修改的树链剖分~ 如何区间修改?跟树链剖分的区间询问一个道理,再加上线段树的区间修改就好了. 这道题要注意的是,无论是线段树上 ...
- Compile、Make和Build的区别(as make, build, clean, run)
Compile.Make和Build的区别 - 熔 岩 - 51CTO技术博客 http://lavasoft.blog.51cto.com/62575/436216/ 针对Java的开发工具,一般都 ...
- Android字体设置
// 自定义字体custom = new TextView(this);//xx.ttf located at assets/fonts/typeface = Typeface.createFromA ...
- Python之旅:数据类型、字符编码、文件处理
一 引子 1 什么是数据? x=10,10是我们要存储的数据 2 为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示 3 数据类型 以下每个类型都是有详细介绍链接的 ...
- QT 登陆对话框
该文章原创于Qter开源社区(www.qter.org),作者yafeilinux,转载请注明出处! 正文 一.创建项目 1.新建Qt Gui应用,项目名称为“login”,类名和基类保持MainWi ...
- 【Asp.net入门09】第一个ASP.NET 应用程序-处理窗体(1)
我们创建了一个HTML窗体,可以通过它显示受邀参加晚会的嘉宾,但是,当嘉宾单击Submit RSVP按钮时,同一个页面会反复多次显示.为了解决此问题,需要实现一段代码,用于在将窗体数据发布到服务器时执 ...
- 关于.Net开源并跨平台的思考
开源的意义: 关于开源,我个人觉得有两个提高(勿喷). 一方面开源提高了生产力,另一方面开源也是信任的一种体现.为什么这么说呢,在当下的互联网时代,开源是一种核心价值观.人与人沟通交流合作之下,降低成 ...
- Go_19: Golang 中错误与异常需要重新认识
如何进行错误处理,这是一个Go程序员之间,特别是一些新的Go程序员,会经常讨论的问题.讨论到最后往往由于以下代码的多次出现而变成了抱怨. if err != nil { return err } 我们 ...
- ElasticStack系列之六 & 版本冲突处理之乐观锁
悲观并发控制(PCC) 这一点在关系数据库中被广泛使用.假设这种情况很容易发生,我们就可以阻止对这一资源的访问.典型的例子就是当我们在读取一个数据前先锁定这一行,然后确保只有读取到数据的这个线程可以修 ...
- Sql Server 优化技巧
1.查看执行时间和cpu占用时间 set statistics time on select * from dbo.Product set statistics time off 打开你查询之后的消息 ...