CentOS6中Python3和Django的安裝配置

    恰好這段時間閒着有時間也就學學python算是充電了,我選擇的是virtualBox中安裝CentOS6.5的環境,系統自帶的python是2.6.6,所以單獨安裝了python3.3的版本。安裝過程參考了博文: http://www.xenme.com/919html

安裝python3

     因爲系統的yum是依賴python2.6的,因此我採起的是單獨安裝python3的方式(而非替換)。

1,安裝前準備。

    在開始安裝python3以前須要安裝下列lib,這些是安裝pip和Django時會依賴的包,沒有安裝致使pip和django的安裝報錯(好比找不到解壓的庫zlib),解決辦法是回來裝這些lib並從新編譯和安裝python(make && make install)。執行命令:
yum install libbz2
yum install readline-devel
yum install sqlite-devel
yum install zlib-devel
yum install openssl-devel

    在成功安裝如上的lib後,編譯python時會自動加入這些lib到site-packages中。其效果與另一種方式——在配置pythons的時候添加參數--with-pkgname一致(./configure –with-zlib),只是我還沒找全這些pkg的名字。 python

2,下載和安裝python。

    能夠直接從python.org下載最新的版本,經過configure命令配置而後編譯並執行便可。
2.1,在此以前須要確認你的系統有c的編譯器,不然安裝時會報相似「can not find a c compiler"的提示,那麼須要先來個gcc。
#安裝gcc
yum install gcc

2.2下載和安裝 linux

wget -P /yourdirectory http://python.org/ftp/python/3.3.3/Python-3.3.3.tgz
tar -xvf Python-3.3.3.tgz
##cd into your python3's sources unpackaged dir
##set python3's installed path is /var/python3
./configure --prefix=/var/python3
make && make install


3,替換系統路徑默認python鏈接。

    至此完成python3的安裝。接下來要替換Linux系統classpath下的python鏈接(symbol link)指向python3/bin/python3.3文件。這樣作的目的是在系統任意目錄敲入python調用的是python3的命令,而非系統默認2.6.6的,同時這會致使依賴python2.6的yum不能使用,所以還要修改yum配置。

3.1,創建到python3的鏈接  git

##刪除原有鏈接
rm /usr/bin/python
##創建新連接
ln -s /var/python3/bin/python3.3 /usr/bin/python

至此執行python -V命令將看到python默認版本已是3.3了。 github

3.2,更新yum配置。這時/usr/bin目錄下面是包含如下幾個文件的(ll |grep python),其中python2本是原來python鏈接指向的位置,所以只須要指定yum配置的python指向這裏便可。

-rwxr-xr-x.   1 root root     5862386 Jan  7 16:32 python
-rwxr-xr-x.   3 root root        3592 Nov 22 20:11 python2
-rwxr-xr-x.   3 root root        3592 Nov 22 20:11 python2.6 web

vim /usr/bin/yum

經過vim修改yum的配置#!/usr/bin/python改成#!/usr/bin/python2,保存退出。完成了python3的安裝。 sql

安裝pip

pip是根據官網wiki安裝的,地址點擊這裏
1,安裝setuptools。pip安裝前須要先安裝setuptools,在上面的頁面中給出了下載地址。下載並執行便可: shell

wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
python ez_setup.py

2,在完成setuptools後可能的場景有兩種:你安裝了setuptools並同時裝上了pip的某個版本或者是你只安裝了setuptools,我是後者(好像向來都比較悲催),具體是哪一個場景你執行下pip命令就知道了。若是和我同樣那麼下載get_pip.py腳本並執行。  django

wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
python get-pip.py
    pip安裝後執行pip依然沒法找到命令,細看pip安裝的提示信息發先安裝到了python3下面,這裏確定不是系統的classpath目錄。以下:

    Installing pip3 script to /var/python3/bin
    Installing pip3.3 script to /var/python3/bin    
    Installing pip script to /var/python3/bin
Successfully installed pip bootstrap

    解決辦法就是簡單地創建鏈接到系統的classpath目錄之一: ln /var/python3/bin/pip /usr/bin/pip。不過這裏也能夠看出有可能我沒那麼悲催而多是pip和setuptools一併安裝了,可是目錄不對。
3,按照pip的說法,最後執行
pip install --upgrade setuptools
更新到最近的setuptools,至此pip按照完畢。

安裝git: 

執行並根據提示一路next,安裝完成後執行git --help測試是否安裝成功。須要說明git的安裝不是必須的(最終我也沒用,由於在國內呵呵),除非你但願始終保持最新發布的django代碼,不然能夠忽略。
yum install git


安裝django

    有了pip,這件事變得很是簡單,只須要一個命令便可。須要說明的是和上面的問題同樣,你須要在系統classpath目錄下創建到django-admin.py的鏈接。


pip install django
#after django being installed
ln -s /var/python3/lib/python3.3/site-packages/django/bin/django-admin.py /usr/bin/django-admin.py
#這裏視你的django安裝位置而定——通常是python的site-packages下。

    執行後django安裝完成。下面創建一個演示的website,參考來自django的指導,經過執行命令

django-admin.py startproject mysite

    創建一個名爲mysite的工程其結構以下:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py
    外層的mysite:    僅僅是工程的容器,叫什麼名字不要緊。
    manage.py:        一個命令行的工具類用於和你的工程交互。
    內層mysite:      實際的python package。
    __init__.py:        空文件,它的存在是爲了代表這是一個python package。
    settings.py:       Django的配置文件。
    urls.py:           簡單的說就是用於url派發的配置。
    wsgi.py:            用於和wsgi server鏈接的接入點,商用部署時用到的server。
    到如今django的安裝和工程已經創建,能夠啓動django開發的服務器了。django警告這個內置的server只適合開發用而非商用是沒有安全保護的。執行如下命令啓動django:
python manage.py runserver

    這時候若是你是直接在linux主機上訪問的那麼已經能夠經過localhost:8000來訪問了,若是和我同樣經過vbox啓動的linux並想在本身的物理機上訪問暫時是行不通的。能夠經過命令python manage.py runserver 0.0.0.0:8000是django server監聽public ip以便從外面訪問,除此之外還要在virtual box中設置端口映射。

修復python2

    因爲手賤在第一建立python3的symbol link時誤刪除了/usr/bin/python2這個文件,致使yum不能使用,着實着急了好半天才找到解決辦法。是在某篇博客上看到的解決辦法——重裝相關的rpm文件。全部的rpm文件能夠在網易提供的景象中下載,應該是國內比較快的地方了,地址:http://mirrors.163.com/centos/6.5/os/i386/Packages/。rpm列表以下:


  • python-2.6.6-29.el6.x86_64.rpm
  • python-devel-2.6.6-29.el6.x86_64.rpm
  • python-iniparse-0.3.1-2.1.el6.noarch.rpm
  • python-setuptools-0.6.10-3.el6.noarch.rpm
  • python-urlgrabber-3.9.1-8.el6.noarch.rpm
  • rpm-python-4.8.0-19.el6.x86_64.rpm
  • yum-3.2.29-22.el6.centos.noarch.rpm
  • yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
  • python-pycurl-7.19.0-8.el6.x86_64.rpm
    注意rpm命令,必需要追加 –replacepkgs 參數,強制其從新安裝,不然rpm會報告說package已安裝。
rpm -Uvh --replacepkgs ***.rpm

至此打完收工:)。

相關文章
相關標籤/搜索