1)centos7的虛擬機環境html
2)環境初始化
關閉防火牆
systemctl stop firewalld #關閉防火牆
iptables -F #清除預設表filter中全部規則鏈中的規則
setenforce 0 #系統自帶防火牆也給關了python
3)瞭解linux命令linux
linux下的軟件安裝方式:sql
rpm yum 編譯安裝django
網址:https://www.python.org/downloads/release/python-362/vim
下載地址:https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgzcentos
1)解決依賴bash
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
2)下載python3的源碼包服務器
下載地址: wget https://www.python.org/ftp/python/3.4.7/Python-3.4.7.tar.xz 解壓命令: xz -d Python-3.4.7.tar.xz tar -xf Python-3.4.7.tar
3)編譯安裝app
cd Python-3.4.7/
./configure --prefix=/opt/python3/ #指定安裝路徑,生成一個makefile文件,用於python3的編譯安裝 make make install
4)配置python3可執行命令,快捷方式
#linux添加python3的環境變量 #第一種方式 ln -s /opt/python3/bin/python3 /usr/bin/python3 #第二種方式,寫入到/etc/profile中,這一步很是重要 base prefix 基本路徑
vim /etc/profile
export PATH=/opt/python34/bin/:$PATH source /etc/profile 使得配置文件生效
5)測試直接輸入 python3,可否進入python
輸入echo $PATH查看環境變量
virtualenv介紹:
在使用 Python
開發的過程當中,工程一多,不免會碰到不一樣的工程依賴不一樣版本的庫的問題;
亦或者是在開發過程當中不想讓物理環境裏充斥各類各樣的庫,引起將來的依賴災難。
此時,咱們須要對於不一樣的工程使用不一樣的虛擬環境來保持開發環境以及宿主環境的清潔。
這裏,就要隆重介紹 virtualenv
,一個能夠幫助咱們管理不一樣 Python
環境的絕好工具。
virtualenv
能夠在系統中創建多個不一樣而且相互不干擾的虛擬環境。
1)指定django版本進行安裝
pip3 install django==1.11.15
2)下載
#指定清華源下載pip的包 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv #升級pip工具 pip3 install --upgrade pip
3)使用
1.安裝virtualenv pip3 install virtualenv 2.建立目錄 mkdir Myproject cd Myproject
3.建立獨立運行環境-命名 virtualenv --no-site-packages --python=python3 venv#獲得獨立第三方包的環境,而且指定解釋器是python3,確保環境乾淨隔離,與宿主及解釋器隔離開(--no-site-packages)
4.檢查環境變量,確認已經進入venv虛擬環境中 source venv/bin/activate#此時進入虛擬環境(venv)Myproject
echo $PATH #虛擬環境變量優先放到第一條,輸入pip3的時候會優先使用第一條
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環境。
pip3 list
which pip3
4)測試安裝兩個不一樣版本的django環境
1.在系統解釋器下 pip3 install django==1.11.15 2.在虛擬環境venv中 pip3 install django
5)使用django admin建立項目,能夠測試在兩個解釋器中,運行不一樣的任務
#home目錄
django-admin startproject mysite
cd mysite/
vim mysite/settings.py # 修改ALLOWED_HOSTS = ['*']
python3 manage.py runserver 0.0.0.0:7000 #啓動項目
#在虛擬環境目錄
django-admin startproject mysite2
cd mysite2/
vim mysite2/settings.py # 修改ALLOWED_HOSTS = ['*']
python3 manage.py runserver 0.0.0.0:9000 #啓動項目
1.假設咱們在本地開發環境,準備好了項目+依賴包環境 2.如今須要將項目上傳至服務器,上線發佈 3.那麼就要保證服務器的python環境一致性
解決方案: 1.經過命令保證環境的一致性,導出當前python環境的包 pip3 freeze > requirements.txt 這將會建立一個 requirements.txt 文件,其中包含了當前環境中全部包及 各自的版本的簡單列表。 可使用 「pip list」在不產生requirements文件的狀況下, 查看已安裝包的列表。 2.上傳至服務器後,在服務器下建立virtualenv,在venv中導入項目所需的模塊依賴 pip3 install -r requirements.txt
virtualenv 的一個最大的缺點就是: 每次開啓虛擬環境以前要去虛擬環境所在目錄下的 bin 目錄下 source 一下 activate,這就須要咱們記住每一個虛擬環境所在的目錄。 而且還有可能你忘記了虛擬環境放在哪。。。 一種可行的解決方案是,將全部的虛擬環境目錄全都集中起來,例如/opt/all_venv/,而且針對不一樣的目錄作不一樣的事。 使用virtualenvwrapper管理你的虛擬環境(virtualenv),其實他就是統一管理虛擬環境的目錄,而且省去了source的步驟。
1)安裝
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 #指定宿主機python3解釋器絕對路徑 source /opt/python34/bin/virtualenvwrapper.sh #執行virtualenvwrapper安裝腳本 讀取文件,使得生效,此時已經可使用virtalenvwrapper source ~/.bashrc
備註:
使得腳本生效,從新登陸一次
logout 在從新登陸的時候,加載virtualenvwrapper腳本
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
4)經常使用其餘命令
lsvirtualenv 列舉全部的環境。 cdvirtualenv 導航到當前激活的虛擬環境的目錄中,好比說這樣您就可以瀏覽它的 site-packages 。 cdsitepackages 和上面的相似,可是是直接進入到 site-packages 目錄中。 lssitepackages 顯示 site-packages 目錄中的內容。 完整官網介紹:https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html