關於虛擬環境的重要性這里就不多說了,這篇文章介紹一下linux中virtualenv以及virtualenvwrapper的使用。
virtualenv的安裝與使用
使用前提示:注意,你的PATH變量,編譯安裝的python3一定要放在最前面!
使用步驟如下:
# 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 # 前提是將python3的路徑加在了環境變量了,也可以直接把python解釋器的絕對路徑加在這里 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 - -!)
~~另外,部署項目前記得關一下防火牆~
環境變量的變化
virtualenvwrapper的安裝與使用
virtualenv 的一個最大的缺點就是:
每次開啟虛擬環境之前要去虛擬環境所在目錄下的bin目錄下source一下activate,這就需要我們記住每個虛擬環境所在的目錄。
但是實際中~再聰明的你也有可能你忘記了虛擬環境放在哪 0.0!
一種可行的解決方案是,將所有的虛擬環境目錄全都集中起來,例如/opt/all_venv/,並且針對不同的目錄做不同的事。
使用virtualenvwrapper管理你的虛擬環境(virtualenv),其實他就是統一管理虛擬環境的目錄,並且省去了source的步驟。
安裝virtualenvwrapper
pip3 install virtualenvwrapper
設置Linux的環境變量,每次啟動就加載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
基本使用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
~~