儘管 Python 2 早已在 2020.1.1 停止支援, 工作上或朋友圈中, 尚在使用 Ubuntu/macOS 來開發 Python 2 應用程式的人, 還真不在少數. 由於最近工作中的某個任務導向的重要 Python 2 應用系統, 因為其 virtualenv 環境中使用的 pip 版本不小心被升級到 21, 導致無法順利安裝所需要的 Python 套件, 而發生服務中斷的意外事件; 讓自己興起了重整 Python 2 & Python 3 使用的 virtualenv 初始化建置 & 套件安裝更新的個人制式化程序, 以利自己與他人進行溝通協助解決問題.
Python 2 virtualenv Makefile
clean:
rm -rf .venv2
init_venv2: clean
virtualenv --python=$(shell which python2) .venv2
( \
. .venv2/bin/activate; \
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py && \
(python get-pip.py; rm -f get-pip.py); \
)
update:
( \
. .venv2/bin/activate; \
pip install -r requirements.txt; \
)
這個 Makefile 在 Ubuntu 18/20, macOS Big Sur 中都測試過, 其中:
1. make clean
這個指令用來清除目前所在的工作目錄下的 .venv2 目錄.
2. make init_venv2
這個指令用來在目前所在的工作目錄下的 .venv2 目錄中建立 virtualenv 的環境.
3. make update
這個指令用來在目前所在的工作目錄下的 virtualenv 環境中安裝所需要的 Python 2 套件.
Python 3 virtualenv Makefile
clean:
rm -rf .venv3
init_venv3: clean
$(shell which python3) -m venv .venv3
( \
. .venv3/bin/activate; \
wget https://bootstrap.pypa.io/get-pip.py && \
(python get-pip.py; rm -f get-pip.py); \
)
update:
( \
. .venv3/bin/activate; \
pip install -r requirements.txt; \
)
這個 Makefile 在 Ubuntu 18/20, macOS Big Sur 中都測試過, 其中:
1. make clean
這個指令用來清除目前所在的工作目錄下的 .venv3 目錄.
2. make init_venv3
這個指令用來在目前所在的工作目錄下的 .venv3 目錄中建立 virtualenv 的環境.
3. make update
這個指令用來在目前所在的工作目錄下的 virtualenv 環境中安裝所需要的 Python 3 套件.
萬事俱備
這樣要協助解決問題的話, 只要拿到程式後, 再請對方一併提供 requirements.txt 就可以幫忙囉!
最後未免有人不知道, 順便提一下 requirements.txt 的產生方式如下:
pip freeze > requirements.txt