linux项目部署学习(1) pyhton3的虚拟环境virtualenv和virtualenvwrapper详解
1.pyhton3的虚拟环境virtualenv和virtualenvwrapper详解:
虚拟环境应用的背景:
作用:可以生成了n多个虚拟环境,实现解释器的模块分离,防止后期的模块宅难
python3解释器的虚拟环境的含义是? (多个虚拟环境时独立隔离的)
在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;
亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。
此时,我们需要对于不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的清洁。
这里,就要隆重介绍 virtualenv,一个可以帮助我们管理不同 Python 环境的绝好工具。
virtualenv 可以在系统中建立多个不同并且相互不干扰的虚拟环境。
一、linux下安装
1.指定清华源下载pip的包
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
#升级pip工具
pip3 install --upgrade pip
#查看是否安装 pip3 list
2.通过命令行创建虚拟环境
#这个命令如果你要使用相对路径,就要注意你当前在哪个路径下(默认是当前的目录)。
#virtualenv --no-site-packages --python=python3 venv1
virtualenv --python=python3 venv1 (执行这个是最新的) --python参数可选择 python解释器的版本(python2 or python3)
ps:
--no-site-packages 表示不要任何的第三方模块,pip3安装的模块都会放在这里(/opt/python365/lib/python3.6/site-packages)
--python=python3 指定venv虚拟解释器,以哪个解释器为准
3.需要激活一下虚拟环境(本质是把venv1的环境变量加到$PATH最前面)
source /opt/venv1/bin/activate
#此时进入了虚拟环境
4.明确虚拟环境下的venv1的解释器的干净隔离的
[root@VM-0-6-centos bin]# source /opt/venv1/bin/activate
(venv1) [root@VM-0-6-centos bin]#
(venv1) [root@VM-0-6-centos bin]#
(venv1) [root@VM-0-6-centos bin]# which python3
/opt/venv1/bin/python3
(venv1) [root@VM-0-6-centos bin]# which pip3
/opt/venv1/bin/pip3
(venv1) [root@VM-0-6-centos bin]# pip3 list
Package Version
---------- -------
pip 20.1.1
setuptools 47.1.1
wheel 0.34.2
5.在venv1中安装django1,默认会安装到venv1中的
pip3 install -i https://pypi.douban.com/simple django==1.11.9
安装好后启动django 项目就可以了
6.在开一个窗口运行django2.0版本
virtualenv --python=python3 venv2
#激活
[root@VM-0-6-centos opt]# source venv2/bin/activate
(venv2) [root@VM-0-6-centos opt]#
(venv2) [root@VM-0-6-centos opt]# $PATH
-bash: /opt/venv2/bin:/opt/python365/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin: No such file or directory
#安装django2
pip3 install -i https://pypi.douban.com/simple django==2.0.1
#启动django即可
7.退出虚拟环境 (会将激活时加入的path删除)
deactivate
二、保证开发环境,生产环境python模块的一致性:
在这里看一下
在windows上开发一个项目,pip3安装了很多的模块,最终项目才能运行,比如crm代码。
代码上传到服务器,是一个空的环境,还得在部署一遍。
土方法:运行代码, 查看报错,一个模块一个个安装
不那么土的办法:
pip3 freeze > requirements.txt #把你解释器用到的模块,信息导出一个文件
1.在windows的cmd命令中通过此命令导出。
2.把此文件发送给linux服务器
在linux机器上,安装此文件即可,自动读取文件中的每一行的模块信息,自动安装
pip3 install -i htpps://pypi.douban.com/simple -r requirements.txt