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