1. 程式人生 > >web搭建初探(virtualenv安裝及django專案建立)

web搭建初探(virtualenv安裝及django專案建立)


在上一篇安裝完成後,突然發現還有一個python虛擬環境可以用來開發python專案,其執行環境之間還可以互不影響,所以下面我們使用virtualenv來進行web搭建的初探。

1.virtualenv

1.1 安裝

舉例:在開發Python應用程式的時候,系統安裝的Python3只有一個版本:3.4。所有第三方的包都會被pip安裝到Python3的site-packages目錄下。

如果我們要同時開發多個應用程式,那這些應用程式都會共用一個Python,就是安裝在系統的Python 3。如果應用A需要jinja 2.7,而應用B需要jinja 2.6怎麼辦?

這種情況下,每個應用可能需要各自擁有一套“獨立”的Python執行環境。virtualenv就是用來為一個應用建立一套“隔離”的Python執行環境。

首先,我們用pip安裝virtualenv:

pip install virtualenv
(我的python 版本是2.7,若為3.6模式則為pip3 install virtualenv)

到這兒virtualenv環境已經搭建好了。

1.2 命令列建立專案虛擬環境

第一步,建立目錄:

Mac:~ michael$ mkdir myproject
Mac:~ michael$ cd myproject/
Mac:myproject michael$

第二步,建立一個獨立的Python執行環境,命名為venv:

Mac:myproject michael$ virtualenv --no-site-packages venv
Using base prefix '/usr/local/.../Python.framework/Versions/3.4'
New python executable in venv/bin/python3.4
Also creating executable in venv/bin/python
Installing setuptools, pip, wheel...done.

命令virtualenv就可以建立一個獨立的Python執行環境,我們還加上了引數–no-site-packages,這樣,已經安裝到系統Python環境中的所有第三方包都不會複製過來,這樣,我們就得到了一個不帶任何第三方包的“乾淨”的Python執行環境。

新建的Python環境被放到當前目錄下的venv目錄。有了venv這個Python環境,可以用source進入該環境:

Mac:myproject michael$ source venv/bin/activate
(venv)Mac:myproject michael$

注意到命令提示符變了,有個(venv)字首,表示當前環境是一個名為venv的Python環境。

下面正常安裝各種第三方包,並執行python命令:

(venv)Mac:myproject michael$ pip install jinja2
...
Successfully installed jinja2-2.7.3 markupsafe-0.23
(venv)Mac:myproject michael$ python myapp.py
...

在venv環境下,用pip安裝的包都被安裝到venv這個環境下,系統Python環境不受任何影響。也就是說,venv環境是專門針對myproject這個應用建立的。

退出當前的venv環境,使用deactivate命令:

(venv)Mac:myproject michael$ deactivate 
Mac:myproject michael$

此時就回到了正常的環境,現在pip或python均是在系統Python環境下執行。

完全可以針對每個應用建立獨立的Python執行環境,這樣就可以對每個應用的Python環境進行隔離。

virtualenv是如何建立“獨立”的Python執行環境的呢?原理很簡單,就是把系統Python複製一份到virtualenv的環境,用命令source venv/bin/activate進入一個virtualenv環境時,virtualenv會修改相關環境變數,讓命令python和pip均指向當前的virtualenv環境。

1.3 pycharm中建立虛擬環境

2.在Pycharm中建立Django開發環境

問題: 我的pycharm沒有框架的選擇,更新了還是沒有。但明明已經安裝了Django。此問題待解決!
emmm 換了專業版的就有了,社群版的沒有