最淺顯易懂的Django系列教程(1) 虛擬環境

2021-10-06 03:26:38 字數 2523 閱讀 2774

到目前位置,我們所有的第三方包安裝都是直接通過pip install xx的方式進行安裝的,這樣安裝會將那個包安裝到你的系統級的python環境中。但是這樣有乙個問題,就是如果你現在用django 1.10.x寫了個**,然後你的領導跟你說,之前有乙個舊專案是用django 0.9開發的,讓你來維護,但是django 1.10不再相容django 0.9的一些語法了。這時候就會碰到乙個問題,我如何在我的電腦中同時擁有django 1.10django 0.9兩套環境呢?這時候我們就可以通過虛擬環境來解決這個問題。

虛擬環境相當於乙個抽屜,在這個抽屜中安裝的任何軟體包都不會影響到其他抽屜。並且在專案中,我可以指定這個專案的虛擬環境來配合我的專案。比如我們現在有乙個專案是基於django 1.10.x版本,又有乙個專案是基於django 0.9.x的版本,那麼這時候就可以建立兩個虛擬環境,在這兩個虛擬環境中分別安裝django 1.10.xdjango 0.9.x來適配我們的專案。

virtualenv是用來建立虛擬環境的軟體工具,我們可以通過pip或者pip3來安裝:

pip install virtualenv

pip3 install virtualenv

建立虛擬環境非常簡單,通過以下命令就可以建立了:

virtualenv [虛擬環境的名字]
如果你當前的python3/scripts的查詢路徑在python2/scripts的前面,那麼將會使用python3作為這個虛擬環境的直譯器。如果python2/scriptspython3/scripts前面,那麼將會使用python2來作為這個虛擬環境的直譯器。

虛擬環境建立好了以後,那麼可以進入到這個虛擬環境中,然後安裝一些第三方包,進入虛擬環境在不同的作業系統中有不同的方式,一般分為兩種,第一種是windows,第二種是*nix

windows進入虛擬環境:進入到虛擬環境的scripts資料夾中,然後執行activate

*nix進入虛擬環境:source /path/to/virtualenv/bin/activate

一旦你進入到了這個虛擬環境中,你安裝包,解除安裝包都是在這個虛擬環境中,不會影響到外面的環境。

退出虛擬環境很簡單,通過乙個命令就可以完成:deactivate

在電腦的環境變數中,一般是不會去更改一些環境變數的順序的。也就是說比如你的python2/scriptspython3/scripts的前面,那麼你不會經常去更改他們的位置。但是這時候我確實是想在建立虛擬環境的時候用python3這個版本,這時候可以通過-p引數來指定具體的python直譯器:

virtualenv -p c:\python36\python.exe [virutalenv name]

建立虛擬環境:

mkvirtualenv my_env切換到某個虛擬環境:

workon my_env

退出當前虛擬環境:

deactivate

刪除某個虛擬環境:

rmvirtualenv my_env

列出所有虛擬環境:

lsvirtualenv

進入到虛擬環境所在的目錄:

cdvirtualenv

修改mkvirtualenv的預設路徑:

我的電腦->右鍵->屬性->高階系統設定->環境變數->系統變數中新增乙個引數workon_home,將這個引數的值設定為你需要的路徑。

建立虛擬環境的時候指定python版本:

在使用mkvirtualenv的時候,可以指定--python的引數來指定具體的python路徑:

mkvirtualenv --python==c:\python36\python.exe hy_env

最淺顯易懂的Django系列教程(7) 模板介紹

在之前的章節中,檢視函式只是直接返回文字,而在實際生產環境中其實很少這樣用,因為實際的頁面大多是帶有樣式的html 這可以讓瀏覽器渲染出非常漂亮的頁面。目前市面上有非常多的模板系統,其中最知名最好用的就是dtl和jinja2。dtl是django template language三個單詞的縮寫,也...

最淺顯易懂的Django系列教程(9) 常用標籤

if標籤 if標籤相當於python中的if語句,有elif和else相對應,但是所有的標籤都需要用標籤符號 進行包裹。if標籤中可以使用 in not in is is not等判斷運算子。示例 如下 張三 p 李四 p for.in.標籤 for.in.類似於python中的for.in.可以遍...

史上最淺顯易懂的Git教程1

最先進的分布式版本控制系統 沒有之一 cvs和svn,這些集中式的版本控制系統不但速度慢,而且必須聯網才能使用 集中式版本控制系統,版本庫是集中存放在 伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從 伺服器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給 伺服器。分布式版本控制系統...