安装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的爬虫程序到其中:

 1 # https://docs.scrapy.org/en/latest/intro/overview.html
 2 
 3 import scrapy
 4 
 5 class QuotesSpider(scrapy.Spider):
 6     name = 'quotes'
 7     start_urls = [
 8         'http://quotes.toscrape.com/tag/humor',
 9     ]
10     
11     def parse(self, response):
12         for quote in response.css('div.quote'):
13             yield {
14                 'text': quote.css('span.text::text').extract_first(),
15                 'author': quote.xpath('span/small/text()').extract_first(),
16             }
17         
18         next_page = response.css('li.next a::attr("href")').extract_first()
19         print('next_page = ', next_page)
20         if next_page is not None:
21             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很有用,不过,孤还需要更多场景来体会才是。

优质内容筛选与推荐>>
1、BZOJ 3218(a + b Problem-二分图套值域线段树)
2、os模块
3、sql错误,提示“不是有效的标识符”
4、LeetCode "Populating Next Right Pointers in Each Node II"
5、将会改变未来IT世界的十种编程语言  转


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号