Centos7 python虛擬環境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        # 生成新的緩存

163源:http://mirrors.163.com/.help/centos.html

中科大源:https://lug.ustc.edu.cn/wiki/mirrors/help/centos

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM