虛擬環境是什麼?
虛擬環境 (Virtual Environment) ,可以依不同的專案,設置不一樣的 package 環境,讓各個專案有他們自己需要的 package
早期要使用虛擬環境的功能,我們必須透過第三方套件 virtualenv 來完成,但是Python 3.3 後,就內建 venv 模組來管理虛擬環境。
如果我們使用 PyCharm 這個 IDE,他也是預設在 Python 3.3 後使用 venv 來管理每個專案的虛擬環境。
為何要使用虛擬環境?
1、避免套件衝突
專案所使用的 package 和本機安裝的版本不同,例如:本機裝的是 django 3,但專案要用 django 2;或者是,你本來使用 django 2 來開發專案,現在你想使用 django 3,所以你升級成 django 3 ,於是,你之前開發的程式就無法正常執行了。
2、作業系統安裝權限限制
在 linux 系統中,一般的使用者可以無需 root 或 sudo 的權限,在自己的專案目錄中,安裝自己所需要的套件。
3、自訂環境、隔離不同的使用環境
自訂的虛擬環境可以用來測試不同版本的 package 對專案的影響。
常用的 venv 指令
建立新的虛擬環境
# 先進到專案目錄中
cd project_dir
# 建立 venv 目錄
python3 -m venv venv
# 啟動 venv (在 ubuntu 上)
source venv/bin/activate
# 啟動 venv (在 Win10 cmd 上)
venv\Scripts\activate
# 安裝套件,以 Beautiful Soup 為例
pip3 install BeautifulSoup4
# 查看此 venv 中,所安裝的套件 (Ubuntu olny)
pip3 freeze
# 停用 venv
deactivate
Demo code rundown
pip list
# python -m 模組名 venv名稱
python -m venv project_env
project_env\Scripts\activate.bat
where python
pip list
pip install requests
pip intall pytz
pip list
cls
pip freeze
pip freeze > requirements.txt
deactivate
rmdir project_env /s
mkdir my_project
python -m venv my_project\venv
my_project\venv\Scripts\activate.bat
pip install -r requirements.txt
pip list
cd my_project
# type nul > script.py
copy nul script.py
dir
deactivate
cls
# system package for global
pip list
rmdir venv /s
python -m venv venv --system-site-packages
venv\Scripts\activate.bat
cls
pip list
pip listall SQLAlchemy
pip list
pip list --local
Comments