【Python】使用虛擬環境pipenv

揚
發佈於Err500
2022/06/06閱讀時間約 2 分鐘

為什麼要使用pipenv

初玩python時常用pip安裝各式各樣的套件下來,而這些套件在本機中是以全域的方式安裝。假設今天需要接手別人的專案,所用的套件版本不相容,對於這些仰賴的套件(依賴dependencies)進行管理跟切分就成了一個課題。
pip list 檢視現有安裝的套件

安裝pipenv

# 打開terminal 輸入指令
pip install pipenv  // 安裝pipenv
安裝完成以後,即可使用pipenv指令。
首先建立一個專案資料夾並更換終端機路徑到資料夾,執行初始的動作
mkdir env_project       // 建立指定檔名的資料夾(自行命名)
cd env_project       // 移動到專案資料夾
pipenv install requests  // 安裝request套件(自行安裝其他套件)
pipenv install 後自動生成Pipfile及Pipfile.lock
如果一開始專案沒有準備Pipfile跟Pipfile.lock,在執行pipenv install時會自動產生檔案,裡面記錄了該專案所用到的套件、使用的版本等各種依賴資訊。因此日後就算版本更新,或是提供出去的使用者版本不相容、缺少套件,都可以透過這兩個檔案內的資訊,重新下載安裝需要的依賴。
Pipfile檔案內容

如何使用

開始使用虛擬環境,作業上會需要下列指令
pipenv shell    // 進入虛擬環境
# ...進行作業
python app.py   // 執行撰寫完成的應用程式
# ...完成作業
exit        // 離開虛擬環境 
如果有其他語言的使用經驗,pipenv的功用類似Nodejs使用npm init或是Java 使用maven跟pom.xml進行套件管理的概念。

安裝時遇到的小坑

ImportError: cannot import name 'InstallCommand'
網路上大多教學是使用Mac或Linux,而我的電腦作業系統是Windows,在pipenv install時正好遇到此問題,只好把問題原封不動貼上搜索看看。
簡單來說我做的處理
  1. 把舊版的pip升級
  2. virtualenv、pipenv重新安裝
  3. 對照了一下,發現後來pipenv版本似乎會是比較早一點的版本,結果正常運作
10會員
54內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
留言0
查看全部
發表第一個留言支持創作者!