iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 2
0
AI & Data

Scrapy爬蟲與資料處理30天筆記系列 第 2

[Day 02] 用Virtual Environment吧!

Day 02

嗨,今天是第二天,先來說明virtualenv這件小事好了?

Why virtualenv ?

我在使用Scrapy這個套件的時候遇到它預設是使用Python2的版本的問題,而我所想到解決的方法是建立一個單純只有Python3的虛擬環境去執行它。
那為何不使用Python2呢?單純做爬取其實Python2就行了吧?若只有單純要執行Scrapy沒問題,
但是後來發現python-dotenv這個套件似乎無再支援Python2了,若不用這個套件就必須將SQL(ip, 帳號, 密碼)資訊直接寫在程式碼中,而不是寫在.env中。這個套件之後使用到會再介紹,本篇文章先不多說明啦。

當然使用virtualenv也有幾個優點:

  • 不同專案可以使用不同版本的相同套件,且不互相影響。
  • 啟動虛擬環境後,pip 安裝的套件會被放在虛擬環境中,每個專案就可以擁有一個獨立的環境。
  • 套件版本升級時不會影響到其他的專案。
  • 在沒有權限的情況下安裝新套件。

總之,我們會在開啟一個專案前先建立一個環境(提醒:本系列文章都會用這一個,而不是一篇文章一個),來安裝該專案需要的套件,跟本機電腦的Python套件不相衝突。

Install Virtualenv

若你的電腦pip預設為python3版本,則把pip3改成pip

pip3 install virtualenv

安裝完成之後,就可以使用virtualenv建立虛擬環境了:

virtualenv -p /path/to/python3 my_env_name

若不知道Python3的路徑,可以使用which

which python3

看到/usr/local/bin/python3就是我本機上Python3路徑,舉例:

virtualenv -p /usr/local/bin/python3 plusoneEnv
# Running virtualenv with interpreter /usr/local/bin/python3
# Using base prefix '/Library/Frameworks/Python.framework/Versions/3.6'
# New python executable in /Users/plusone/plusoneEnv/bin/python3
# Also creating executable in /Users/plusone/plusoneEnv/bin/python
# Installing setuptools, pip, wheel...done.

Activate Virtual Environment

執行完上面的指令後,可以看到目錄多了一個plusoneEnv資料夾,現在,啟動虛擬環境:

source plusoneEnv/bin/activate

如圖,可以看到以下畫面,多了一個(plusoneEnv),用pip list查詢有哪些安裝的套件只會看到基本的三個套件:
Imgur

就可以用pip安裝需要的套件了。

Deactivating Virtualenv

deactivate

可以看到執行deactivate指令後,就退出虛擬環境了。
Imgur

好的,今天說明了如何安裝、建立一個獨立的Python虛擬環境,解決了套件版本可能會衝突的問題。
請愛用Virtualenv,今天就這樣啦謝謝各位。


上一篇
[Day 01] 動機與規劃!
下一篇
[Day 03] 檔案讀取/寫入
系列文
Scrapy爬蟲與資料處理30天筆記30

尚未有邦友留言

立即登入留言