Day01 1.4 Python虚拟环境的搭建

发布时间 2023-06-16 21:32:26作者: Chimengmeng

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)安装

(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
  • 安装到不能上网的电脑上