安裝Python虛擬環(huán)境和django

走了一些彎路,簡單記錄一下

本文參考以下文章在本地環(huán)境下測試成功
ubuntu16.04
廖雪峰的博客!
Virtualenv的介紹

創(chuàng)建虛擬環(huán)境的時候一些文章用的是virtualenv命令而另一些用的是mvirtualenv

效果是差不多的,區(qū)別在于剛開始安裝了virtualenv一個軟件還要virtualenvwrapper這兩個。下面一一道來

首先要明白的是創(chuàng)建虛擬環(huán)境的作用是什么

  1. 開發(fā)Python應(yīng)用的時候,會需要不同版本的Python運行環(huán)境。
  2. 不同的的應(yīng)用對不同版本的庫文件。
  3. 不同應(yīng)用之間的隔離和不同插件之間的隔離。
  4. 虛擬環(huán)境可以隨時恢復(fù)隨時刪除。
首先要在宿主環(huán)境里面安裝virtualenv和virtualenvwrapper
sudo pip install virtualenv
sudo pip install virtualenvwrapper

在~/.bashrc文件里面加上:

# 其中#username改成你自己的用戶名,.virtualenv是虛擬環(huán)境的家目錄。
export WORKON_HOME=/home/username/.virtualenv 
source /usr/local/bin/virtualenvwrapper.sh

之后創(chuàng)建虛擬環(huán)境的存放路徑

之后source ~/.bashrc

現(xiàn)在我們用-p選項創(chuàng)建一個python3的虛擬環(huán)境,當(dāng)然系統(tǒng)里得先裝好了python3。

mkvirtualenv -p python3 py3env

-p 后面的參數(shù)指定了python3(也有可能要換成python3.2/python3.4,具體要看你系統(tǒng)里面/use/bin/里面的文件是什么名字),如果去掉這個參數(shù),就會使用系統(tǒng)默認(rèn)的python。最后一個參數(shù)py3env是創(chuàng)建的這個環(huán)境的名字。

(py3env) 03:21:35@backbox:06~/.virtualenvs $ l
get_env_details*  postmkvirtualenv   premkvirtualenv*
initialize        postrmvirtualenv*  prermvirtualenv*
postactivate      preactivate*       py3_django/
postdeactivate    predeactivate      py3env/
postmkproject*    premkproject*

這里要說兩點,
####一。有些文章只安裝了$ pip3 install virtualenv
這時候,新建虛擬環(huán)境的時候就需要用$ virtualenv --no-site-packages venv命令。其中 --no-site-packages參數(shù)指定,已經(jīng)安裝到系統(tǒng)Python環(huán)境中的所有第三方包都不會復(fù)制過來??梢缘玫揭粋€相對簡潔的Python環(huán)境。進入這個環(huán)境需要$ source venv/bin/activate
####二。我的本地環(huán)境安裝了Python2.7和Python3.5,$ sudo pip install virtualenv之后需要再$ sudo pip3 install virtualenv么?答案是不需要。
03:23:55@backbox:01~ $ which virtualenv /usr/local/bin/virtualenv

執(zhí)行完了之后,會自動切換到這個新創(chuàng)建的虛擬環(huán)境。我們會發(fā)現(xiàn)命令行提示符會發(fā)生改變,虛擬環(huán)境的名字會加在提示符開頭:
(py3_django) 03:14:28@backbox:181~/django/BookManager $

現(xiàn)在看一下PS1 的值

(py3_django) 03:41:41@backbox:191~/django/BookManager $ echo HelloWorld
HelloWorld
(py3_django) 03:41:58@backbox:192~/django/BookManager $ echo $PS1
(py3_django) \[\e]0;\u@\h: \w\a\]\[\033[1;31;1m\]\t@\h:\[\033[32;00m\]\j\#\[\033[1;37;1m\]\w \[\e[30;00m\]\$

其他一些常用命令:

deactivate                # 退出當(dāng)前虛擬環(huán)境
workon [虛擬環(huán)境名稱]       # 使用某個虛擬環(huán)境
rmvirtualenv [虛擬環(huán)境名稱] # 刪除某個虛擬環(huán)境
lsvirtualenv              # 列出所有虛擬環(huán)境

用pip list 和 pip freeze 命令查看軟件包,這樣,我們就得到了一個不帶任何第三方包的“干凈”的Python運行環(huán)境。

(py3env) 03:17:37@backbox:02~ $ pip list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
pip (9.0.1)
setuptools (38.4.0)
wheel (0.30.0)
(py3env) 03:17:46@backbox:03~ $ pip freeze
(py3env) 03:17:53@backbox:04~ $ 

在虛擬環(huán)境中設(shè)置默認(rèn)命令

有些時候,我們希望在進入虛擬環(huán)境之后執(zhí)行某些命令,或者設(shè)置一些環(huán)境變量。

例如:在django運行的時候,可以通過環(huán)境變量DJANGO_SETTINGS_MODULE來指定配置文件的路徑。

我們可以在虛擬環(huán)境目錄下面創(chuàng)建文件bin/postactivate,并在文件里面寫入:

export DJANGO_SETTINGS_MODULE=config.django.production
這個文件會在每次進入這個虛擬環(huán)境的時候被執(zhí)行,這樣這個參數(shù)就會被設(shè)置了。

除了postactivate以外,其他階段也可以有這樣的設(shè)置,參看:https://virtualenvwrapper.readthedocs.org/en/latest/scripts.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容