Day01 1.4 Python虚拟环境的搭建
【一】虚拟环境介绍
(1)虚拟环境优点
- 1、使不同应用开发环境相互独立
- 2、环境升级不影响其他应用,也不会影响全局的python环境
- 3、防止出现包管理混乱及包版本冲突
(2)什么是虚拟环境,为什么要有它?它解决了什么问题
- 操作系统装了python3.8
- 使用django 2.2.2开发了一个项目
- 使用django 3.x 开发了一个i项目
- 把两个项目都打开,同时开发
- 每个项目都用自己独立的环境,装的模块相互不影响
- 两种解决方案:
- Virtualenv
- pipenv
【二】Windows平台
(1)安装
- 建议使用pip3安装到python3环境下
- pip3 install virtualenv
- pip3 install virtualenvwrapper-win
(2)配置虚拟环境管理器工作目录
(2.1)配置环境变量:
- 控制面板 =>
- 系统和安全 =>
- 系统 =>
- 高级系统设置 =>
- 环境变量 =>
- 系统变量 =>
- 点击新建 =>
- 填入变量名与值
- 变量名:
- WORKON_HOME
- 变量值:
- 自定义存放虚拟环境的绝对路径
- eg: WORKON_HOME: D:\Virtualenvs
- 变量名:
(2.2)同步配置信息:
- 去向Python3的安装目录 =>
- Scripts文件夹 =>
- virtualenvwrapper.bat =>
- 双击
【三】MacOS、Linux平台
(1)安装
- 建议使用pip3安装到python3环境下
- pip3 install -i https://pypi.douban.com/simple virtualenv
- pip3 install -i https://pypi.douban.com/simple virtualenvwrapper
(2)工作文件
- 先找到
virtualenvwrapper
的工作文件virtualenvwrapper.sh
,该文件可以刷新自定义配置,但需要找到它 - MacOS可能存在的位置
/Library/Frameworks/Python.framework/Versions/版本号文件夹/bin
- Linux可能所在的位置
/usr/local/bin
|~/.local/bin
|/usr/bin
- 建议不管
virtualenvwrapper.sh
在哪个目录,保证在/usr/local/bin
目录下有一份 - 如果不在
/usr/local/bin
目录,如在~/.local/bin
目录,则复制一份到/usr/local/bin
目录
-- sudo cp -rf ~/.local/bin/virtualenvwrapper.sh /usr/local/bin
(3)配置
- 在
~/.bash_profile
完成配置,virtualenvwrapper
的默认默认存放虚拟环境路径是~/.virtualenvs
- WORKON_HOME=自定义存放虚拟环境的绝对路径,需要自定义就解注
VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
- 在终端让配置生效:
-- source ~/.bash_profile
(4)使用
- 在终端工作的命令
1、创建虚拟环境到配置的WORKON_HOME路径下
- 选取默认Python环境创建虚拟环境:
-- mkvirtualenv 虚拟环境名称
- 基于某Python环境创建虚拟环境:
-- mkvirtualenv -p python2.7 虚拟环境名称
-- mkvirtualenv -p python3.6 虚拟环境名称
2、查看已有的虚拟环境
-- workon
3、使用某个虚拟环境
-- workon 虚拟环境名称
4、进入|退出 该虚拟环境的Python环境
-- python | exit()
5、为虚拟环境安装模块
-- pip或pip3 install 模块名
6、退出当前虚拟环境
-- deactivate
7、删除虚拟环境(删除当前虚拟环境要先退出)
-- rmvirtualenv 虚拟环境名称
【四】Pycharm
创建虚拟环境
【五】导出项目依赖
(1)requirements.txt 导出方法
- 我们开发了一个项目
- 依赖了很多第三方模块
- 第三方模块装在了虚拟环境上
- 后期我们需要把项目发送给别人
- 别人不知道我们装了那些模块
- 在项目根路径,一定要有个文件:
- requirements.txt
- 里面记录了当前项目依赖那些第三方模块
- 我们的项目要导出:requirements.txt
- 下载包
pip freeze
# wcwidth==0.2.5 # 模块名==版本号
- 命令
pip freeze > requirements.txt
-
会把当前解释器中所有的第三方模块
- 都导出到requirements.txt
-
给了别人后,别人只需要执行
pip3 install -r requirements.txt
- 别人就好把该项目所有的依赖装好,然后愉快运行即可
(2)注意事项
-
requirements.txt 一定要按照这个文件名命名吗?
- 不一定
- 但是约定俗称是这样
- 有的叫 req.txt
-
有的情况,我们不能上网
- 我们需要把当前依赖---》导出zip--->在不能上网的机器上导入
- 每个包,其实都是
whl文件
- 你可以提前下好
whl文件
- 后期再不能上网的电脑上安装
pip install 路径/requests.whl
- 网上搜一下,如何批量导出本地的所有第三方包---->zip
- 安装到不能上网的电脑上