Table of Contents
虛擬環境是什麼?
虛擬環境 (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