###### tags: `套件分享` # 虛擬環境 ![](https://i.imgur.com/UZnPaYI.png) ### Introduction - What is venv. - 主要是for Python的環境,提供一個可以讓你存放不同python package的地方。可以透過`pip list`查看目前的環境中有下載甚麼樣子的套件(package or library)。 - ![](https://i.imgur.com/3gueU8D.png) - why we need? - 如果沒有特別去新增,預設的環境就是一個虛擬環境。所以透過pip install下載的package全部都會放在一起。 - 假如遇到套件或是版本問題時,需要更新其中一個套件,但是有些專案需要特定不同版本的套件的話,專案之間就會互相衝突。或是其中一個套件壞掉導致整個虛擬環境壞掉的情況發生。 - 這個時候就需要有互相不受干擾的虛擬環境,可以把個別專案需要的虛擬環境分別裝,之後遇到其中一個專案的虛擬環境壞掉的話只要把壞掉的虛擬環境刪除,其他的虛擬環境也不會受到影響。 - ![](https://i.imgur.com/DX8Z62s.png) --- ### Ubuntu setup (terminal) - Step1: linux:`sudo -H pip install virtualenv` 幫你加入到PATH裡面 - Step2: `whereis python` 查看現在電腦有甚麼版本的python - Step3: `virtualenv --python=/usr/bin/python3.8 test_venv` - Step4: `source test_venv/bin/activate` 進入虛擬環境 - Step5: `pip list` 檢查是不是一個全空的 只會有幾個預設的 - ![](https://i.imgur.com/ZvqmunX.png) --- ### Windows setup (cmd) - Step1: `pip install virtualenv` - Step2: `where python` 查看現在電腦上有甚麼版本的python - ![](https://i.imgur.com/I8WarKN.png) - Step3: `virtualenv --python=F:\Python36\python.exe test_venv` 選一個要建立的版本 然後 後面的參數是虛擬環境的名稱 - ![](https://i.imgur.com/HWoCW7U.png) - Step4: 啟動虛擬環境 - `cd test_venv/Script` - `activate` - ![](https://i.imgur.com/2HNvs86.png) - ![](https://i.imgur.com/KdOsdOs.png) --- ### 如何安裝Python 特定版本 - Step 1: 搜尋Python 版本 (範例是要下載Python 3.10) - ![](https://hackmd.io/_uploads/H1Kyj1zw3.png) - Step 2: 下載windows installer - ![](https://hackmd.io/_uploads/HyUzsyMv2.png) - Step 3: 執行安裝,記得一定要加入在Path,另外可以自己選擇要安裝的位子 - ![](https://hackmd.io/_uploads/BkzvokMP3.png) - Step 4: 能打勾的都可以打勾(如果看得懂各自用途的 可以自己選配) - ![](https://hackmd.io/_uploads/rkV9oJfv3.png) - Step 5: 建議圈起來的部分可以都打勾,另外可以自己選擇要安裝的位子 - ![](https://hackmd.io/_uploads/S1i-2kGv3.png) - Step 6: 按下install即可,安裝後確認一下是否有安裝好(打開cmd 輸入`where python`),在自己安裝的目錄下有這個Python即可 - ![](https://hackmd.io/_uploads/B1kA2Jfwn.png) --- ### 如何安裝套件 - 不指定套件版本,直接裝最新的請用 - `pip install package_name` - ex. 安裝tensorflow最新 - `pip install tensorflow` - 指定套件版本,請用 - `pip install package_nmame==version` - ex. 安裝tensorflow 1.15版本 - `pip install tensorflow==1.15`