初玩python時常用pip安裝各式各樣的套件下來,而這些套件在本機中是以全域的方式安裝。假設今天需要接手別人的專案,所用的套件版本不相容,對於這些仰賴的套件(依賴dependencies)進行管理跟切分就成了一個課題。
# 打開terminal 輸入指令
pip install pipenv // 安裝pipenv
安裝完成以後,即可使用pipenv指令。
首先建立一個專案資料夾並更換終端機路徑到資料夾,執行初始的動作
mkdir env_project // 建立指定檔名的資料夾(自行命名)
cd env_project // 移動到專案資料夾
pipenv install requests // 安裝request套件(自行安裝其他套件)
如果一開始專案沒有準備Pipfile跟Pipfile.lock,在執行pipenv install時會自動產生檔案,裡面記錄了該專案所用到的套件、使用的版本等各種依賴資訊。因此日後就算版本更新,或是提供出去的使用者版本不相容、缺少套件,都可以透過這兩個檔案內的資訊,重新下載安裝需要的依賴。
開始使用虛擬環境,作業上會需要下列指令
pipenv shell // 進入虛擬環境
# ...進行作業
python app.py // 執行撰寫完成的應用程式
# ...完成作業
exit // 離開虛擬環境
如果有其他語言的使用經驗,pipenv的功用類似Nodejs使用npm init或是Java 使用maven跟pom.xml進行套件管理的概念。
ImportError: cannot import name 'InstallCommand'
網路上大多教學是使用Mac或Linux,而我的電腦作業系統是Windows,在pipenv install時正好遇到此問題,只好把問題原封不動貼上搜索看看。
簡單來說我做的處理