關於虛擬環境的重要性這裏就很少說了,這篇文章介紹一下linux中virtualenv以及virtualenvwrapper的使用。html
使用前提示:注意,你的PATH變量,編譯安裝的python3必定要放在最前面!python
使用步驟以下:linux
# 1.下載虛擬環境工具(這裏是在物理環境下安裝的) pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv # 2.使用命令,建立虛擬環境,分別運行一個django1和django2 # 進入一個統一管理的目錄,管理虛擬環境例如/opt/allenv # 建立一個統一的虛擬環境目錄,便於管理 mkdir /opt/allenv # 進入這個目錄 cd /opt/allenv #3.建立python3 的虛擬環境——venv1是虛擬環境的名字 virtualenv --no-site-packages --python=python3 venv1 ''' #參數解釋 --no-site-packages 不要任何的第三方包 --python 是指定一個解釋器 咱們選的是python3 venv1是虛擬環境文件夾的名字,自定義 ''' #4.進入虛擬環境目錄,激活虛擬環境 #source是linux的讀取命令,讀取一個腳本文件,激活虛擬環境 source /opt/allenv/venv1/bin/activate #5.虛擬環境使用原理是,修改了PATH變量,根據pATH的優先級,使用解釋器 #6.激活虛擬環境,在venv1下建立django2項目 注意~建立好虛擬環境後~咱們就能夠在這一片區域用pip安裝這個環境須要的模塊與包了 #7.再開一個窗口,建立venv2,用於建立django1的項目 #8.退出虛擬環境的命令 deactivate
這裏我用Xshell開了兩個窗口,分別在兩個虛擬環境中運行django1與django2的項目(請不要吐槽runserver - -!)shell
~~另外,部署項目前記得關一下防火牆~django
virtualenv 的一個最大的缺點就是:
每次開啓虛擬環境以前要去虛擬環境所在目錄下的bin目錄下source一下activate,這就須要咱們記住每一個虛擬環境所在的目錄。vim
可是實際中~再聰明的你也有可能你忘記了虛擬環境放在哪 0.0!bash
一種可行的解決方案是,將全部的虛擬環境目錄全都集中起來,例如/opt/all_venv/,而且針對不一樣的目錄作不一樣的事。
使用virtualenvwrapper管理你的虛擬環境(virtualenv),其實他就是統一管理虛擬環境的目錄,而且省去了source的步驟。app
pip3 install virtualenvwrapper
#系統變量配置文件是 /etc/profile~~這裏咱們配置在我的用戶中 #我的用戶變量配置文件,在用戶家目錄下找到這個~/.bash_profile文件,寫入以下配置 #打開文件,往裏面寫入變量 vim ~/.bash_profile #設置virtualenv的統一管理目錄 export WORKON_HOME=~/Envs #添加virtualenvwrapper的參數,生成乾淨隔絕的環境 export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' ## 特別注意下面這兩個目錄是本身安裝的python3 的目錄~~這裏默認指定的是py3的環境~若是想生成py2的虛擬環境須要用virtualenv單獨配置了 #指定python解釋器 export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 #執行virtualenvwrapper安裝腳本 source /usr/local/bin/virtualenvwrapper.sh
最後記得執行source命令讓配置生效:工具
source ~/.bash_profile
#建立一個虛擬環境: 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
~~spa