下載地址:https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgzhtml
1
2
|
cd
/
opt 進入
/
opt目錄,通常安裝的軟件都放在此目錄下
[root@localhost opt]
# wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
|
下載完成,以下圖:python
安裝python3以前,解決環境依賴,提早安裝好這些軟件包,往後就不會出現不少坑。linux
1
|
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
|
下載好python3源碼包以後,解壓縮sql
1
|
[root@localhost opt]
# tar -xvf Python-3.6.2.tgz
|
完成後查看,以下:django
進入Python-3.6.2目錄vim
1
|
[root@localhost opt]
# cd Python-3.6.2
|
四、編譯且安裝windows
1)釋放編譯文件makefile,這個makefile就是用來編譯安裝的,爲下一步的編譯作準備,能夠經過在 configure 後加上參數來對安裝進行控制centos
1
|
[root@localhost Python
-
3.6
.
2
]
# ./configure --prefix=/opt/python36/
|
上條命令的意思是將該軟件安裝在 /opt/python36/ 下面,執行文件會安裝在/opt/python36/bin(而不是默認的/usr/local/bin),資源文件就會安裝在 /opt/python36/share(而不是默認的/usr/local/share)。瀏覽器
同時一些軟件的配置文件你能夠經過指定 --sys-config= 參數進行設定。有一些軟件還能夠加上 --with、--enable、--without、--disable 等等參數對編譯加以控制,你能夠經過容許 ./configure --help 察看詳細的說明幫助。bash
上條命令執行結果產生了Makefile文件,以下圖:
2)make
1
|
[root@localhost Python
-
3.6
.
2
]
# make
|
這一步就是編譯,大多數的源代碼包都通過這一步進行編譯.
make 的做用是開始進行源代碼編譯,以及一些功能的提供,這些功能由他的 Makefile 設置文件提供相關的功能,好比 make install 通常表示進行安裝,make uninstall 是卸載,不加參數就是默認的進行源代碼編譯。
make 是 Linux 開發套件裏面自動化編譯的一個控制程序,他經過藉助 Makefile 裏面編寫的編譯規範進行自動化的調用 gcc 、ld 以及運行某些須要的程序進行編譯。通常狀況下,他所使用的 Makefile 控制代碼,由 configure 這個設置腳本根據給定的參數和系統環境生成。
3)make install(在這一步,會生成/opt/python36)
1
|
[root@localhost Python
-
3.6
.
2
]
# make install
|
這條命令來進行安裝(固然有些軟件須要先運行 make check 或 make test來進行一些測試),這一步通常須要你有 root 權限(由於要向系統寫入文件)。
上述3步完成後,/opt/python36/bin目錄下就有了python3.6和pip3.6,以下:
五、配置python3.6的環境變量
1
|
[root@localhost ~]
# echo $PATH 查看環境變量
|
在上面的輸出結果(假設爲/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)之上加入路徑/opt/python36/bin,再從新賦給變量PATH,即
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python36/bin
這個變量賦值操做,只是臨時生效,須要寫入到/etc/profile文件,才能永久生效
1
|
[root@localhost ~]
# vi /etc/profile
|
在文件最後寫入
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python36/bin
保存退出
1
|
[root@localhost ~]
# source /etc/profile 讀文件,使得環境變量生效
|
注意:也能夠經過配置軟連接代替此過程,可是上述過程較好,所以軟連接方法不做過多介紹。
六、在linux上開啓一個django項目
1)下載django
1
2
|
[root@localhost ~]
# pip3 install django
[root@localhost ~]
# pip3 list 查看有哪些python包
|
2)建立django項目(注意所在目錄,會在命令執行時的目錄下生成項目)
1
|
[root@localhost opt]
# django-admin startproject mysite
|
3)建立應用app01
1
2
|
[root@localhost opt]
# cd mysite
[root@localhost mysite]
# python manage.py startapp app01
|
4)編寫視圖函數
5)修改配置文件settings.py的ALLOW_HOSTS參數
1
2
|
[root@localhost mysite]
# vi ./mysite/settings.py
將settings.py中的ALLOW_HOSTS
=
[] 改成 ALLOW_HOSTS
=
[
'*'
]
|
6)開啓django服務器
1
|
[root@localhost mysite]
# python manage.py runserver 0.0.0.0:8000
|
此時,打開windows瀏覽器,輸入服務器的ip(服務器對外ip,而非上面的0.0.0.0)和端口號8000便可訪問django項目。
七、yum工具注意事項
若是你用yum命令,提示yum進程被鎖定,沒法使用時能夠經過命令
1
|
ps
-
ef|grep yum 查看yum進程
|
有結果則表示另外一個進程也在用yum,而yum只能有一個進程同時使用
在使用 Python 開發的過程當中,工程一多,不免會碰到不一樣的工程依賴不一樣版本庫的問題;或者是在開發過程當中不想讓物理環境裏充斥各類各樣的庫,引起將來的依賴災難。此時,咱們須要對於不一樣的工程使用不一樣的虛擬環境來保持開發環境以及宿主環境的清潔。
這裏,就要隆重介紹 virtualenv,一個能夠幫助咱們管理不一樣 Python 環境的絕好工具。
virtualenv 能夠在系統中創建多個不一樣而且相互不干擾的虛擬環境。virtualenv 就是一個虛擬解釋器,是基於物理環境下的python解釋器虛擬/分身出的解釋器 。
一、經過物理環境的pip下載virtualenv工具
1
|
pip3 install
-
i https:
/
/
pypi.tuna.tsinghua.edu.cn
/
simple virtualenv
|
參數 -i 指定清華源下載pip的包,下載後linux中就多了一個virtualenv命令,以下:
二、建立一個虛擬環境
1
|
[root@localhost opt]
# virtualenv --no-site-packages --python=python3 s15venv1
|
參數解釋:
--no-site-packages 這是構建乾淨,隔離的模塊
--python=python3 這個參數是指定虛擬環境以哪個物理解釋器爲基礎的
s15venv1 這個是一個是虛擬環境的名字,當前目錄下會建立這麼一個文件夾
三、進入虛擬環境目錄,激活虛擬環境
找到虛擬環境目錄下bin目錄下的activate文件
1
2
3
4
|
[root@localhost opt]
# source ./s15venv1/bin/activate 激活虛擬環境
(s15venv1) [root@localhost opt]
# echo $PATH 檢查環境變量
(s15venv1) [root@localhost opt]
# which python3 檢查虛擬環境的解釋器是否正常
(s15venv1) [root@localhost opt]
# which pip3 檢查虛擬環境的解釋器是否正常
|
激活虛擬環境,原理就是修改了PATH變量,path是有順序執行的。
四、在虛擬環境中安裝django
1
2
3
|
(s15venv1) [root@localhost opt]
# pip3 install django==1.11.11
(s15venv1) [root@localhost opt]
# pip3 list 查看是否安裝成功
(s15venv1) [root@localhost opt]
# django-admin startproject mysite1 建立django項目
|
編輯配置文件settings.py文件中的ALLOW_HOSTS參數
1
|
(s15venv1) [root@localhost opt]
# vi ./mysite1/mysite1/settings.py
|
啓動服務器
1
|
(s15venv1) [root@localhost opt]
# python ./mysite1/manage.py runserver 0.0.0.0:8000
|
使用瀏覽器訪問服務器便可
1
|
(s15venv1) [root@localhost opt]
# deactivate 退出虛擬環境
|
假設咱們在本地開發環境,準備好了項目+依賴包環境,如今須要將項目上傳至服務器,上線發佈,那麼就要保證服務器的python環境一致。解決方案以下步驟:
一、經過命令導出開發環境依賴的包
1
|
(s15venv1) [root@localhost opt]
# pip3 freeze > requirements.txt
|
上面命令將會建立一個 requirements.txt 文件,其中包含了當前環境中全部包及各自版本的簡單列表。可使用 「pip list」在不產生requirements文件的狀況下, 查看已安裝包的列表,以下:
二、將產生的requirements.txt文件傳至(可使用scp命令)生產環境的服務器,在服務器下建立virtualenv,在venv中導入項目所需的模塊依賴
1
|
(prodEnv) [root@localhost opt]
# pip3 install -r requirements.txt
|
上面命令執行後會在生產服務器對應項目的虛擬環境中導入與開發環境中相同的且版本一致的依賴包。
virtualenv 的一個最大的缺點就是:每次開啓虛擬環境以前要去虛擬環境所在目錄下的 bin 目錄下 source 一下 activate,這就須要咱們記住每一個虛擬環境所在的目錄,而且還有可能你忘記了虛擬環境放在哪。
一種可行的解決方案是,將全部的虛擬環境目錄全都集中起來,例如/opt/all_venv/,而且針對不一樣的目錄作不一樣的事。
另外一種是使用virtualenvwrapper管理你的虛擬環境(virtualenv),其實他就是統一管理虛擬環境的目錄,而且省去了source的步驟。下面詳細介紹此方法的使用步驟:
1
|
pip3 install virtualenvwrapper
|
注意:此命令必須得在物理解釋器下執行,不要在虛擬環境下
確保/etc/profile文件的環境變量PATH中,物理解釋器的python在最前面,以下圖所示:
把下面幾行代碼添加到 ~/.bashrc文件中
1
|
vim ~
/
.bashrc 打開用戶家目錄下的隱藏文件.bashrc,在文件最後寫入下面代碼
|
export WORKON_HOME=~/Envs # 設置virtualenv的統一管理目錄,用戶家目錄下產生Envs目錄 export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' # 上一行表示添加virtualenvwrapper的參數,生成乾淨隔絕的環境 export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3 # 指定python解釋器 source /opt/python36/bin/virtualenvwrapper.sh # 執行virtualenvwrapper安裝腳本
執行下面命令,讀取文件,使得上面代碼生效,而後就可使用virtalenvwrapper工具了
1
|
source ~
/
.bashrc
|
或者也能夠從新登陸會話,使得配置生效,以下:
1
2
3
4
|
mkvirtualenv env1
# 自動下載並建立虛擬環境env1,且激活此虛擬環境
workon env1
# 激活虛擬環境env1,輸入workon tab鍵可查看當前有哪些虛擬環境
deactivate
# 退出虛擬環境
rmvirtualenv env1
# 刪除虛擬環境 env1,須要先退出虛擬環境
|
1
2
3
4
|
lsvirtualenv
# 列舉全部的環境
cdvirtualenv
# 進入當前已激活的虛擬環境所在的目錄
cdsitepackages
# 進入當前激活的虛擬環境的,python包的目錄
lssitepackages
# 顯示 site-packages 目錄中的內容。
|
完整官網介紹:https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html
參考博客:http://www.javashuo.com/article/p-dhyasubb-go.html
參考博客:http://www.javashuo.com/article/p-fttjuxcm-gm.html
1
|
yum install wget
-
y 安裝wget命令
|