python虚拟环境搭建
1、什么是python虚拟环境?
Python虚拟环境的主要目的是为了给不同的工程创建互相独立的运行环境。在虚拟环境下,每一个工程都有自己的依赖包,而与其它的工程无关。不同的虚拟环境中同一个包可以有不同的版本。并且,虚拟环境的数量没有限制,我们可以轻松地用virtualenv或者pyenv等工具来创建多个虚拟环境。
2、为什么要用虚拟环境?
在实际项目开发中,我们通常会根据自己的需求去下载各种相应的框架库,如Scrapy、Beautiful Soup等,但是可能每个项目使用的框架库并不一样,或使用框架的版本不一样,这样需要我们根据需求不断的更新或卸载相应的库。直接怼我们的Python环境操作会让我们的开发环境和项目造成很多不必要的麻烦,管理也相当混乱。如以下场景:
场景1:项目A需要某个框架1.0版本,项目B需要这个库的2.0版本。如果没有安装虚拟环境,那么当你使用这两个项目时,你就需要来回的卸载安装了,这样很容易就给你的项目带来莫名的错误;
场景2:公司之前的项目需要python2.7环境下运行,而你接手的项目需要在python3环境中运行,想想就应该知道,如果不使用虚拟环境,这这两个项目可能无法同时使用,使用python3则公司之前的项目可能无法运行,反正则新项目运行有麻烦。而如果虚拟环境可以分别为这两个项目配置不同的运行环境,这样两个项目就可以同时运行。
3、安装虚拟环境(Linux系统)
3.1、安装,创建python虚拟化运行环境的工具
Linux中安装的python默认没有安装pip工具,因此需先安装pip工具。
(注意:若没有pip命令,则先安装epel源,再yum install python-pip)
[root@localhost ~]# yum install python-pip
[root@localhost ~]# pip install --upgrade pip
[root@localhost ~]# yum install python-virtualenv
注意:如果下载过慢可在用国内源下载:
[root@localhost ~]# pip install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple virtualenv
3.2、创建、启动、退出虚拟环境
使用默认python版本创建虚拟环境
[root@localhost ~]# virtualenv py01
启动虚拟环境
[root@localhost ~]# cd py01/bin/
[root@localhost bin]# source active
查看python版本
(py01) [root@localhost bin]# python
退出虚拟环境
(py01) [root@localhost bin]# deactivate
使用指定python版本创建虚拟环境(-p 指定python的安装路径)
[root@localhost ~]# virtualenv -p /usr/local/python3.7.7/bin/python3 py02
其余操作同上
4、虚拟环境管理工具
4.1、安装工具包
[root@localhost ~]# pip install -i https://pypi.douban.com/simple/ virtualenvwrapper
4.2、查找文件
[root@localhost ~]# find / -name virtualenvwrapper.sh
/usr/bin/virtualenvwrapper.sh
4.3、添加环境变量
[root@localhost ~]# vim .bashrc
(在最后边添加下边内容)
export WORKON_HOME=$HOME/.virtualenvs
source /usr/bin/virtualenvwrapper.sh
4.4、重启机器
[root@localhost ~]# reboot
4.5、使用管理工具创建虚拟环境
①使用默认python版本创建
[root@localhost ~]# mkvirtualenv test01
②使用指定python版本创建
[root@localhost ~]# mkvirtualenv --python=/usr/local/python3.7.7/bin/python3 test02
4.6、进入虚拟环境
[root@localhost ~]# workon test01
查看python版本
(test01) [root@localhost ~]# python
Python 2.7.5 (default, Oct 30 2018, 23:45:53)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
或
[root@localhost ~]# workon test02
查看python版本
(test02) [root@localhost ~]# python
Python 3.7.7 (default, Mar 27 2020, 12:29:36)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
4.7、退出虚拟环境
(test01) [root@localhost ~]# deactivate