虛擬環境是什麼?

虛擬環境 (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

參考資料

venv — Creation of virtual environments

Python 教學 » 12. 虛擬環境與套件

PyCharm – Configure a virtual environment

Last modified: 2023-02-12

Author

Comments

Write a Reply or Comment

Your email address will not be published.