安裝virtualenv(Scrapy)

Windows 10家庭中文版,Python 3.6.4,css

 

virtualenv用來提供一個應用程序獨立的 運行環境,這個獨立是相對於系統的Python運行環境而言,開發者能夠在virtualenv創建的運行環境中安裝各類Python的包以及運行本身的應用程序,而這些操做都不會對系統的Python運行環境有任何影響。html

本文介紹了第一次安裝virtualenv的步驟,以及創建一個虛擬運行環境,並在虛擬運行環境上安裝Scrapy。python

參考:https://virtualenv.pypa.io/en/stable/installation/ (官文)json

注意:Windows系統上會有一些特別的提示,請安考官文。api

 

1.安裝scrapy

使用pip命令:pip3 install virtualenvide

在安裝時範了一個錯誤,把virtualenv拼寫錯了,致使安裝失敗。工具

 

安裝成功後,Python的目錄變化:學習

ui

 

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頗有用,不過,孤還須要更多場景來體會纔是。

相關文章
相關標籤/搜索