一.为什么要安装虚拟环境
我在虚拟机家目录下创建了两个文件夹,分别是projects下的pa和pb(ls ~/projects),代表着pa和pb两个项目
假设pa这个项目需要requests框架,pb项目需要flask框架,那么进行框架的安装后(pip3 install requests , pip3 install flask)
requests框架和flask框架会安装到统一的路径(/usr/local/lib/python3.6/site-packages),那么这样就无法对pa,pb两个项目进行分开管理,所以需要安装虚拟环境,实现pa项目和pb项目分别管理自己的框架,二者互不干扰,互不影响
如果还是觉得懵逼的话,看下面图解便一目了然啦:
创建虚拟环境前
创建虚拟环境后
二.配置虚拟环境
- 安装虚拟环境virtualenv
pip3 install virtualenv - 安装管理虚拟环境的virtualenvwrapper
pip3 install virtualenvwrapper - 配置virtualenvwrapper
vim ~/.bashrc,添加以下三行代码
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.6 # 指定新虚拟环境默认的Python版本
export WORKON_HOME=~/.envs #v指定创建新的虚拟环境保存在哪个文件夹下
source /usr/local/bin/virtualenvwrapper.sh # 执行virtualenvwrapper.sh脚本 - 创建虚拟环境
cd ~/projects/pa
virtualenv pa
# pa为自定义名称 - 激活虚拟环境
source ~/projects/pa/pa/bin/activate
# pa为第2步里自定义的虚拟环境名称 - 退出虚拟环境
deactive - 切换虚拟环境
workon pa - 导出freee文件
cd ~/projects/pa
pip freeze > requirements.txt
⚠️以后实际进行项目交付时,不会将框架一同交付,而是只给框架名称和.py文件,到时让人家自己通过[pip3 install 框架名]的方式自行安装
框架名称我们是通过pip freeze > requirements.txt获取到的
三.实验
- 创建pa,pb文件夹
mkdir projects
cd projects
mkdir pa
mkdir pb - 安装框架
cd pa
pip3 install requests
cd pb
pip3 install flask
安装成功后的画面示例如下:
- 查看requests,flask库统一安装到如下路径:
/usr/local/lib/python3.6/site-packages
删除该路径下安装的requests和flask框架,我们看看安装虚拟环境后是什么样的效果 - 安装虚拟环境
1)pip3 install virtualenv
2)pip3 install virtualenvwrapper
3)vim ~/.bashrc # 添加以下三行代码
… … … … … … … … … … … … … … … … …
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.6
export WORKON_HOME=~/.envs
source /usr/local/bin/virtualenvwrapper.sh
… … … … … … … … … … … … … … … … …
4)cd ~/projects/pa # cd到pa下
virtualenv pa # 创建虚拟环境pa
source ~/projects/pa/bin/activate # 激活虚拟环境
5)cd ~/projects/pb # cd到pb下
virtualenv pb # 创建虚拟环境pb
source ~/projects/pb/bin/activate # 激活虚拟环境
6)workon pa # 切换到虚拟环境pa
7)pip3 install requests # 在虚拟环境pa下安装框架requests
8)workpb # 切换到虚拟环境pb
9)pip3 install flask # 在虚拟环境pb下安装框架flask
⚠️ 我的电脑无需第3)步也成功了,可以先跳过此步骤,进行不下去了再回来配置也可
》〉》〉》〉》〉》〉》〉》〉》〉》〉》〉》〉》 - 最终效果
pa项目下安装的requests框架安装到pa管理的目录下,pb项目下安装的flask框架安装到pb管理的目录下,实现了框架的分别管理,互补干扰,互不影响
参考
https://blog.csdn.net/qq_38627475/article/details/89735995