在使用 Python
開發的過程當中,工程一多,不免會碰到不一樣的工程依賴不一樣版本的庫的問題;html
亦或者是在開發過程當中不想讓物理環境裏充斥各類各樣的庫,引起將來的依賴災難。python
此時,咱們須要對於不一樣的工程使用不一樣的虛擬環境來保持開發環境以及宿主環境的清潔。django
這裏,就要隆重介紹 virtualenv
,一個能夠幫助咱們管理不一樣 Python
環境的絕好工具。vim
virtualenv
能夠在系統中創建多個不一樣而且相互不干擾的虛擬環境。bash
1、Linux下安裝、配置virtualenv
#指定清華源下載pip的包 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv #升級pip工具 pip3 install --upgrade pip
1.安裝virtualenv pip3 install virtualenv
2.建立目錄 mkdir Myproject cd Myproject 3.建立獨立運行環境-命名 virtualenv --no-site-packages --python=python3 venv#獲得獨立第三方包的環境,而且指定解釋器是python3 4.進入虛擬環境 source venv/bin/activate#此時進入虛擬環境(venv)Myproject 5.安裝第三方包 (venv)Myproject: pip3 install django==1.9.8 #此時pip的包都會安裝到venv環境下,venv是針對Myproject建立的 6.退出venv環境 deactivate命令 7. virtualenv是如何建立「獨立」的Python運行環境的呢?原理很簡單,就是把系統Python複製一份到virtualenv的環境,用命令source venv/bin/activate進入一個virtualenv環境時,virtualenv會修改相關環境變量,讓命令python和pip均指向當前的virtualenv環境。
2、確保開發環境的一致性
1.假設咱們在本地開發環境,準備好了項目+依賴包環境 2.如今須要將項目上傳至服務器,上線發佈 3.那麼就要保證服務器的python環境一致性
解決方案: 1.經過命令保證環境的一致性,導出當前python環境的包 pip3 freeze > requirements.txt 這將會建立一個 requirements.txt 文件,其中包含了當前環境中全部包及 各自的版本的簡單列表。
可使用 「pip list」在不產生requirements文件的狀況下, 查看已安裝包的列表。 2.上傳至服務器後,在服務器下建立virtualenv,在venv中導入項目所需的模塊依賴 pip3 install -r requirements.txt
3、虛擬環境之virtualenvwrapper
virtualenv
的一個最大的缺點就是:服務器
每次開啓虛擬環境以前要去虛擬環境所在目錄下的 bin
目錄下 source
一下 activate
,這就須要咱們記住每一個虛擬環境所在的目錄。app
而且還有可能你忘記了虛擬環境放在哪。。。工具
- 一種可行的解決方案是,將全部的虛擬環境目錄全都集中起來,例如/opt/all_venv/,而且針對不一樣的目錄作不一樣的事。
- 使用virtualenvwrapper管理你的虛擬環境(virtualenv),其實他就是統一管理虛擬環境的目錄,而且省去了source的步驟。
步驟1:安裝virtualenvwrapper
pip3 install virtualenvwrapper
步驟2:設置Linux的環境變量,每次啓動就加載virtualenvwrapper
把下面兩行代碼添加到 ~/.bashrc文件中 打開文件 vim ~/.bashrc 寫入如下兩行代碼 export WORKON_HOME=~/Envs #設置virtualenv的統一管理目錄 export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' #添加virtualenvwrapper的參數,生成乾淨隔絕的環境 export VIRTUALENVWRAPPER_PYTHON=/opt/python347/bin/python3 #指定python解釋器 source /opt/python34/bin/virtualenvwrapper.sh #執行virtualenvwrapper安裝腳本 讀取文件,使得生效,此時已經可使用virtalenvwrapper source ~/.bashrc
步驟3:基本使用virtualenvwrapper
建立一個虛擬環境: $ mkvirtualenv my_django115 這會在 ~/Envs 中建立 my_django115 文件夾。 在虛擬環境上工做:激活虛擬環境my_django115 $ workon my_django115 再建立一個新的虛擬環境 $ mkvirtualenv my_django2 virtualenvwrapper 提供環境名字的tab補全功能。 當有不少環境, 而且很難記住它們的名字時,這就顯得頗有用。 workon還能夠任意中止你當前的環境,能夠在多個虛擬環境中來回切換 workon django1.15 workon django2.0 也能夠手動中止虛擬環境 deactivate 刪除虛擬環境,須要先退出虛擬環境 rmvirtualenv my_django115
步驟四:經常使用其餘命令
lsvirtualenv 列舉全部的環境。 cdvirtualenv 導航到當前激活的虛擬環境的目錄中,好比說這樣您就可以瀏覽它的 site-packages 。 cdsitepackages 和上面的相似,可是是直接進入到 site-packages 目錄中。 lssitepackages 顯示 site-packages 目錄中的內容。
完整官網介紹:https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html
圖解
2、Mac下建立pycharm