iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 2
3

開發環境

python3

下載並安裝 python 執行環境,這個系列文用的是 3.7.3 版本。安裝後在命令列執行 python --veresion 確認是否安裝成功。

https://ithelp.ithome.com.tw/upload/images/20190923/201078753hglZeJwcU.png

接著更新 pip。執行 python -m pip install --upgrade pip 後,再執行 pip --version 確認。

https://ithelp.ithome.com.tw/upload/images/20190923/20107875soSo0jhizU.png

虛擬環境

當我們需要其他外部的套件時,可以用 pip 來加入相關的依賴。但如果不同專案需要不同版本的套件甚至是 python interpreter 的時候怎麼辦呢?總不能每次都設定一個新的 python 環境吧。這時候就是需要虛擬環境的時候了!

常見的虛擬環境有幾個:(依序是功能越來越強大的感覺XD)

  1. 官方的 venv
  2. virtualenv
  3. pipenv

原本習慣用 virtualenv,但某次用 pip freeze > requirements.txt 列出相關依賴的時候,發現一堆依賴的依賴,維護起來不太舒服

安裝 pipenv

執行 pip install --user pipenv 安裝後,再執行 pipenv --version 確認,這邊會出現「'pipenv' is not recognized」的錯誤。

https://ithelp.ithome.com.tw/upload/images/20190923/20107875Wv8OcH32ik.png

出錯是因為 pipenv 會安裝在紅框中的路徑中,要把對應的路徑加到 PATH 環境變數中,加入後即可正常執行。

https://ithelp.ithome.com.tw/upload/images/20190923/20107875Ug6ADwac83.png

建立虛擬環境

進到工作目錄中,執行 pipenv --python 3.7 來建立一個使用 pythno 3.7 的虛擬環境。

https://ithelp.ithome.com.tw/upload/images/20190923/20107875YeVLubjfro.png

如果要在虛擬環境中安裝依賴,可以執行 pipenv install <some-package>,例如要安裝 requests 依賴:

https://ithelp.ithome.com.tw/upload/images/20190923/20107875UlTynPwPr3.png

安裝完後,工作目錄中會多出 Pipfile & Pipfile.lock 兩個檔案,接下來執行 pipenv shell 便可以使用虛擬環境的 python 來執行了。下圖可以看到進入虛擬環境前後,執行 pip freeze 時所列出來的依賴完全不同。

https://ithelp.ithome.com.tw/upload/images/20190923/20107875jMDPFtG8W4.png

使用虛擬環境

執行 pipenv shell 進入虛擬環境後,建立 main.py 檔案,包含以下程式碼:

import requests

response = requests.get('https://httpbin.org/ip')

print('Your IP is {0}'.format(response.json()['origin']))

再以 python main.py 來執行這段程式,會得到以下結果:

https://ithelp.ithome.com.tw/upload/images/20190923/20107875Jl32vDevS2.png

也可以在虛擬環境外用 pipenv run python main.py 來執行:

https://ithelp.ithome.com.tw/upload/images/20190923/201078755sviQzrzDR.png


上一篇
【Day 0】前言
下一篇
【Day 2】常見的資料格式 (1/3) - CSV
系列文
爬蟲在手、資料我有 - 30 天 Scrapy 爬蟲實戰33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言