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)的更多相关文章

  1. Python虚拟环境安装virtualenv

    解决了多个版本共存的问题 virtualenv 为每个不同项目提供一份 Python 安装.它并没有真正安装多个 Python 副本,但是它确实提供了一种巧妙的方式来让各项目环境保持独立. 安装vir ...

  2. 在centOS7.2里安装virtualenv和flask

    1) 安装pip工具 #wget https://bootstrap.pypa.io/get-pip.py #python get-pip.py 2) 安装virtualenv,并创建一个开发环境 # ...

  3. Mac下安装virtualenv, 并在PyCharm中使用

    今天在安装一个leader写的package的时候,同事建议安装到虚拟环境中,再在PyCharm里使用该虚拟环境即可.此处记录下经过: 开发Python应用的时候,有时会遇到不同的Python应用依赖 ...

  4. windows下安装virtualenv并且配置指定环境

    下面是在windows下通过virtualenv创建虚拟环境, 包括 : 1. 安装virtualenv(使用pip可直接安装) 2. 使用virtualenv创建指定版本的虚拟环境 3. 进入虚拟环 ...

  5. macos 下安装virtualenv,virtualenvwrapper,然后在pycharm中正常配置方法日志

    1.安装virtualenv或virtualenvwrapper pip install virtualenv pip install virtualenvwraper 注意pip的版本号(查看 pi ...

  6. Python3虚拟环境安装:virtualenv、virtualenvwralpper

    一:通过pip3(因python2和3共存,前文修改过pip3软连接,pip3可以安装到python3)安装virtualenv,pip3 install virtuale 二:建立虚拟环境文件目录 ...

  7. Ubuntu18.04安装Virtualenv虚拟环境

    在Ubuntu18.04安装Virtualenv虚拟环境 [实验环境]: 在这台电脑上已经安装了python3 [安装参考] 1.查看是否已安装virtualenv virtualenv --vers ...

  8. Ubuntu16.04怎么安装virtualenv虚拟环境

    最近安装virtualenv的python虚拟环境,在网上找了很多,尝试了很多,都有各种问题,最终搞定后,给大家分享下我的过程,希望大家少走弯路. 本次安装是基于Ubuntu16.04Linux版本安 ...

  9. Mac安装Virtualenv & PyCharm使用Virtualenv

    我们使用Python开发的时候,每个项目可能需要不同的Python版本,这时候我们就需要Virtualenv配置虚拟环境. Mac安装Virtualenv sudo pip install virtu ...

随机推荐

  1. 【codeforces 765F】 Souvenirs

    http://codeforces.com/problemset/problem/765/F (题目链接) 题意 给出$n$个数的序列,$m$次询问,每次查询区间$[l,r]$之间相差最小的两个数的差 ...

  2. linux内核设计与实现一书阅读整理 之第十八章

    CHAPTER 18 调试 18.1 准备开始 需要的是准备是: - 一个bug - 一个藏匿bug的内核版本 - 相关内核代码的知识和运气 重点: 想要成功的进行调试,就取决于是否能让这些错误重现. ...

  3. Android listview与adapter用法(BaseAdapter + getView)

    Android listview与adapter用法http://www.cnblogs.com/zhengbeibei/archive/2013/05/14/3078805.html package ...

  4. golang单元测试

    使用testing进行单元测试 golang的测试库testing 测试文件与被测试文件在同一个包中 测试文件名为被测试文件名(去后缀)_test.go 测试用例函数以Test开头,TestFunc1 ...

  5. ECharts.js 简单示例

    ECharts.js学习(一) 简单入门 EChart.js 简单入门 最近有一个统计的项目要做,在前端的数据需要用图表的形式展示.网上搜索了一下,发现有几种统计图库. MSChart   这个是Vi ...

  6. 初识Unity Mesh

    Mesh概念:Mesh是Unity中的一个组件,称为网格组件.通俗的讲,Mesh是指模型的网格,3D模型是由多边形拼接而成,而多边形实际上是由多个三角形拼接而成的.所以一个3D模型的表面其实是由多个彼 ...

  7. 我们使用git checkout 将B分支上的部分页面代码 添加或覆盖到A分支上

    $ git branch * A B $ git checkout B message.html message.css message.js other.js $ git status # On b ...

  8. python【数据类型:集合】

  9. Ansible8:Playbook循环

    目录 1.with_items 2.with_nested嵌套循环 3.with_dict 4.with_fileglob文件匹配遍历 5.with_lines 6.with_subelement遍历 ...

  10. bzoj千题计划151:bzoj1131: [POI2008]Sta

    http://www.lydsy.com/JudgeOnline/problem.php?id=1131 dp[i]=dp[fa[i]]-son[i]+n-son[i] #include<cst ...