centos7 python3.6.2環境下virtualenv和virtualenvwrapper的簡單介紹。 ...
我的系統版本是
[root@localhost ~]# cat /etc/os-release
我的Python版本是
[root@localhost ~]# python3 -V
關於如何安裝Python請看我的django環境搭建的博客https://www.cnblogs.com/caesar-id/p/10791791.html
下麵我們來開始搭建基於Python3.6.2版本的虛擬環境virtualenv:
1、由於Centos自帶的yum源下載軟體比較慢,這裡我們使用國內阿裡的yum源。
備份系統自帶的yun源
[root@localhost ~]# mkdir /etc/yum.repos.d/backup [root@localhost ~]# mv /etc/yum.repos.d/* /etc/yum.repos.d/backup/
我們到阿裡的鏡像站https://opsx.alibaba.com/mirror選擇一個合適的yum源
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo [root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo [root@localhost ~]# yum clean all # 清除原來的yum緩存 [root@localhost ~]# yum makecache # 生成新的緩存
2、安裝Python3的虛擬模塊virtualenv
[root@localhost ~]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
安裝後使用pip3 list進行查看
3、創建virtualenv虛擬環境
[root@localhost opt]#cd /opt
[root@localhost opt]# virtualenv --no-site-packages --python=python3 env_1
--no-site-packages:表示使用一個只有Python3的環境,而不導入原來Python3中安裝模塊。
--python=python3:指定要被虛擬的解釋器環境。
env_1:表示虛擬的Python環境目錄。
4、創建好虛擬環境後,需要激活虛擬目錄
[root@localhost opt]# source env_1/bin/activate # 激活虛擬目錄
激活成功後我們發現原來的路徑前出現了虛擬環境的目錄,這樣我們便成功激活併進入到了虛擬環境中。
我們來看下env_1的虛擬目錄下都有哪些文件
我們在看看bin目錄下都有什麼
查看下pip3命令
我們可以發現現在的Python環境全部都是env_1下的Python環境。在來查看下當前虛擬環境是否是純凈的Python環境
虛擬環境只有純凈的Python環境,沒有摻雜系統原本安裝的模塊,也許你現在還沒有發現他的魅力所在,下麵我們開始吧。
5、在env_1的虛擬環境下安裝django1.11.20
(env_1) [root@localhost opt]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django==1.11.20
安裝好後我們使用pip3 list查看下
安裝成功後,我們創建一個django項目django_1
(env_1) [root@localhost opt]# django-admin startproject django_1
(env_1) [root@localhost opt]# vim django_1/django_1/settings.py # 修改配置文件允許其它主機可以訪問
啟動django項目
(env_1) [root@localhost opt]# python3 django_1/manage.py runserver 0.0.0.0:8000
訪問django項目前,我們需要暫時清空本機的防火牆規則,或者暫時關閉防火牆,否則在訪問本機8000埠時會被防火牆拒之門外的,我們新開一個shell。
[root@localhost opt]#iptables -F # 清空防火牆規則
[root@localhost ~]# systemctl stop firewalld.service # 也可以暫時關閉防火牆
如果上面一切順利的話,我們將看到如下界面。
6、下麵我們在創建個虛擬環境env_2(註意:你需要另開一個新shell來創建虛擬環境env_2)
[root@localhost ~]# virtualenv --no-site-packages --python=python3 env_2
7、激活虛擬環境
[root@localhost ~]# source env_2/bin/activate
此時我們在看下pip3和python3
可以發現是env_2下的Python3和pip3,在來查看下pip list
發現還是純凈的Python環境,virtualenv正逐漸的向我們展示它強大的一面。下麵我們在env_2中安裝django2.0
8、安裝django2.0
(env_2) [root@localhost ~]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django==2.0
9、創建django2.0的項目
(env_2) [root@localhost ~]# django-admin startproject django_2
(env_2) [root@localhost ~]# vim django_2/django_2/settings.py
10、啟動django2.0項目
(env_2) [root@localhost ~]# python3 django_2/manage.py runserver 0.0.0.0:9000
11、訪問django2.0項目
這樣我們便實現了在一個操作系統上同時運行django1.0和django2.0兩個環境,也許你可能覺得這還不夠,還有更多的功能等待我們去探索。
12、好了既然可以運行虛擬環境,下麵我們來看看如何退出虛擬環境。其實很簡單,如下:
(env_2) [root@localhost ~]# deactivate # 退出虛擬環境
我們都知道Linux一切皆文件,所以如果想要刪除虛擬環境只需rm -r env_1把虛擬環境的文件夾刪掉即可,好了virtualenv我們就簡單介紹到這裡。
如果想要瞭解更多功能,請訪問virtualenv官網https://virtualenv.pypa.io/en/latest/
virtualenv
雖然功能很好用,但是有一個最大的缺點就是每次開啟虛擬環境之前要去虛擬環境所在目錄下的 bin
目錄下 source
一下 activate
,這就需要我們記住每個虛擬環境所在的目錄。
並且還有可能你忘記了虛擬環境放在哪以及該虛擬環境對應哪個項目。一種可行的解決方案是,將所有的虛擬環境目錄全都集中起來,例如/opt/all_venv/,並且針對不同的目錄做不同的事。但即使這樣在項目多的時候貌似也不是很方便,於是virtualenvwrapper便站了出來要解決這個問題,下麵我們簡單瞭解下virtualenvwrapper的使用。
1、安裝virtualenvwrapper
[root@localhost ~]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenvwrapper
安裝成功後看起來像下麵這個樣子:
2、安裝成功後,設置開機啟動。
我們可以在/etc/profile中設置開機自啟動,這樣的話會影響系統所有用戶,也可以在用戶家目錄下~/.bash_profile針對某個用戶進行設置。
這裡我們針對root用戶進行設置。
[root@localhost ~]# vim ~/.bash_profile # 在配置文件的末尾我們添加如下配置
[root@localhost ~]# source ~/.bash_profile # 使文件立即生效
3、我們在開一個shell登陸root,創建虛擬環境
[root@localhost Envs]# mkvirtualenv env_django_1
使用pip3 list 查看一下:
下麵的使用就和virtualenv類似了,這裡不再重覆。退出虛擬環境和virtualenv一樣
(env_django_1) [root@localhost Envs]# deactivate # 退出虛擬環境
4、激活工作目錄和virtualenv不同,使用workon
[root@localhost Envs]# workon env_django_1 # 激活虛擬環境
5、查看有哪些虛擬環境
[root@localhost Envs]# lsvirtualenv
6、刪除虛擬環境
[root@localhost Envs]# rmvirtualenv env_django_1
跟多有趣的內容請看官方文檔:https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html