Python项目虚拟环境(超详细讲解)

我 的 个 人 主 页: 失心疯的个人主页
入 门 教 程 推 荐 : Python零基础入门教程合集
虚 拟 环 境 搭 建 : Python项目虚拟环境(超详细讲解)
PyQt5 系 列 教 程: Python GUI(PyQt5)文章合集
Oracle数据库教程: Oracle数据库文章合集
优 质 资 源 下 载 : 资源下载合集

 

 

Python项目虚拟环境

  • 首先我们需要了解一下系统解释器
  • 系统解释器
    1. 在python官网下载了python解释器(实际上就是一个软件)
    2. 将下载好的python解释器安装在D:\Python39目录下
    3. 那么,在这个目录下就会生成一系列的文件,下面我们了解一下最主要的几个内容
      D:\Python39
          - python.exe
          - Scripts
              - pip.exe
              - pip3.exe
              - pip3.9.exe
          - Lib
              - random.py
              - re.py
              - json.py
              - site-packages
                  - requests.py
      
      • Python项目虚拟环境(超详细讲解)_第1张图片

    • 这就是我们的系统解释器
    • 在我们的电脑上,同时可以安装多个版本的系统解释器(如:python3.8,python3.9,python3.10)
      D:\Python38
          - python.exe
          - Scripts
              - pip.exe
              - pip3.exe
              - pip3.8.exe
          - Lib
              - random.py
              - re.py
              - json.py
              - site-packages
                  - requests.py
                  
      # ----------------------------------------    
      
      D:\Python39
          - python.exe
          - Scripts
              - pip.exe
              - pip3.exe
              - pip3.9.exe
          - Lib
              - random.py
              - re.py
              - json.py
              - site-packages
                  - requests.py
                  
      # ----------------------------------------
      
      D:\Python310
          - python.exe
          - Scripts
              - pip.exe
              - pip3.exe
              - pip3.10.exe
          - Lib
              - random.py
              - re.py
              - json.py
              - site-packages
                  - requests.py
      

  • 环境变量的配置
    • 我们的电脑可以安装多个版本的解释器
    • 但是,我们在日常开发中会选择一个系统解释器作为主运用的解释器
    • 我们就会将这个版本的解释器的目录添加到环境变量中
      D:\Python39
      D:\Python39\Scripts\
      
    • 那么,我们就可以在cmd终端中直接用python来调用解释器
    • 实际就是通过环境变量中的D:\Python39路径来找到 python.exe
    • 在cmd中运行pip install安装第三方模块
    • 实际就是通过环境变量中的 D:\Python39\Scripts\ 路径来找到 pip.exe

  • 项目开发
    • 我们在前期学习的过程中,可能需要安装很多第三方模块
    • 如:
      # 安装2.1版本的requests
      pip install requests==2.1
      
      # 安装0.9版本的flask
      pip install flask==0.9
      
      # 安装2.9版本的bs4
      pip install bs4==2.9
      ...
      
    • 通过这种方式安装的话,这些第三方模块就安装在系统解释器所在目录的Lib >> site-packages 目录下了
    • 当我们学习完了之后,开始接项目了
    • 项目1:京东抢茅台
    • 这个项目可能只需要用到 requests 模块,那么此时我们就不需要再安装 requests 模块了,可以直接使用系统解释器目录下的 requests 模块
      1. >>> 写代码
      2. >>> 通过系统解释器直接运行
      
    • 项目2:二开天猫抢茅台
    • 这个项目是之前别人已经开发完毕,现在需要再次更新。
    • 拿到别人所写的代码之后,发现项目中用的requests模块是1.3版本的
    • 那么我们现在直接运行代码,有可能会运行不成功。因为我们的系统解释器中安装的是2.1版的requests,项目是基于1.3版本开发的
    • 此时我们就需要先删除原有的2.1版本,重新安装1.3版本的requests
    • 同一个解释器下不允许安装同一个第三方模块的多个版本
      # 安装1.3版本的requests
      pip install requests==1.3
      
    • 问题来了:此时天猫抢茅台项目能正常运行了,但是京东抢茅台的项目又无法运行了,又需要卸载当前版本的requests,再安装2.1版本的requests
    • 当我们所做的项目越来越多的时候,所用到的第三方模块也越来越多,我们总不能每运行一个项目就重装一遍第三方模块
    • 有些人可能会想到,一台电脑可以安装多个版本的解释器,是否可以每个项目都使用不同的系统解释器呢?当然,当项目少的时候可以这么干,但是项目多起来之后呢?
    • 而且项目做的越来越多,安装的第三方模块也越来越多,总不能每个项目都将以往所安装的所有第三方模块都打包给对方吧
    • 这个时候,就可以使用虚拟环境了....

  • 虚拟环境理论
    • 概念:基于系统解释器,虚拟出来一个相同版本的python解释器
    • 虚拟出来的python解释器结果如下
      E:\Projecs\PyQt5\venv
          - python.exe
          - Scripts
              - pip.exe
          - Lib
              - site-packages
      
    • 此时这个虚拟出来的解释器的Lib目录下,不再有python自带的内置模块了,而是直接使用系统解释器中的
    • 项目1:PyQt5开发
      • 我们的项目结构如下:
        • Python项目虚拟环境(超详细讲解)_第2张图片

      • 当我们需要安装第三方模块到这个目录下时,需要执行以下语句
        E:\Projecs\PyQt5\venv\Scripts\pip.exe install pyqt5
        
    • 项目2:ArtCopy开发
      • 我们的项目结构如下:
        • Python项目虚拟环境(超详细讲解)_第3张图片

      • 当我们需要安装第三方模块到这个目录下时,需要执行以下语句
        E:\Projecs\ArtCopy\venv\Scripts\pip.exe install cx-Oracle==8.3.0
        

  • 虚拟环境实战(PyCharm)
  • 通过PyCharm创建项目,并配置虚拟环境
  1. 新建项目
    • Python项目虚拟环境(超详细讲解)_第4张图片

  2. 配置虚拟环境
    • 虚拟环境目录一般放在项目目录内,方便后期项目结束之后删除项目的同时就将虚拟环境一同删除了。不再需要额外去删除虚拟环境了
    • 虚拟环境路径中不能有中文,否则会导致虚拟环境失效
    • Python项目虚拟环境(超详细讲解)_第5张图片

  3. 配置完成后,项目目录如下
    • 此时,site-package目录里面的都是pip工具相关,还没有任何第三方模块
    • Python项目虚拟环境(超详细讲解)_第6张图片

  4. 环境已经有了,那么我们写一句简单的代码运行一下
    print('Holle World!')
    
    • Python项目虚拟环境(超详细讲解)_第7张图片

    • 程序运行命令
    E:\Projecs\pro001\.venv\Scripts\python.exe E:/Projecs/pro001/demo.py
    # 通过 E:\Projecs\pro001\.venv\Scripts\ 目录下的 python.exe 解释器,
    # 编译 E:/Projecs/pro001/ 目录下的 demo.py 文件
    
  5. 安装第三方模块
    • 按正常逻辑,我们需要执行以下语句才能将第三方模块安装在这个虚拟环境中
      E:\Projecs\pro001\.venv\Scripts\pip install requests==2.1
      
    • 但是,我们每次在这个虚拟环境下安装第三方模块,都需要把虚拟环境的路径全部写下来,是非常麻烦的
  6. PyCharm自动激活虚拟环境(进入到虚拟环境目录下)
    • 自动激活前提:项目和虚拟环境进行了绑定
    • PyCharm —— Terminal
    • 注意:windows系统有Windows PowerShell 和 Cmd两种命令行程序。
    • Windows系统中,PyCharm默认使用的是Windows PowerShell,需要修改为CMD命令行程序
    • Windows PowerShell命令行程序无法激活虚拟环境
    • 修改之前,无法激活虚拟环境
      • Python项目虚拟环境(超详细讲解)_第8张图片

    • 修改命令行程序:
      • File —— Settings... —— Tools —— Terminal —— Shell path —— 选择CMD
      • Python项目虚拟环境(超详细讲解)_第9张图片

    • 修改之后,重新打开项目:成功激活虚拟环境
      • Python项目虚拟环境(超详细讲解)_第10张图片

  7. 安装第三方模块
    • 虚拟环境激活之后,再安装第三方模块就不需要写虚拟环境的全路径了
      pip install requests==2.1
      
    • PyCharm默认的安装源是:https://pypi.python.org/simple
    • 安装速度非常缓慢,我们可以修改为国内的源
  8. 修改安装源
    • 常用国内源
      清华大学 :https://pypi.tuna.tsinghua.edu.cn/simple/
      豆瓣源:http://pypi.douban.com/simple/
      阿里云:http://mirrors.aliyun.com/pypi/simple/
      中国科学技术大学 :http://pypi.mirrors.ustc.edu.cn/simple/
      华中科技大学:http://pypi.hustunique.com/
      腾讯源:http://mirrors.cloud.tencent.com/pypi/simple
      华为镜像源:https://repo.huaweicloud.com/repository/pypi/simple/
      
    • 修改安装源
      File —> settings —> Project:PycharmProjects —> Python Interpreter —>点击加号 —> 左下角 Manager Repositories —— 点-删除官方源,点+增加国内镜像源
    • Python项目虚拟环境(超详细讲解)_第11张图片

  9. 第三方包收集和安装
    • 当项目开发完毕之后,要把项目发给小明。小明需要运行
    • 我们发送项目的时候,不要把venv文件(虚拟环境)发送给小明
    • 因为我们的虚拟环境,是基于我们的系统解释器虚拟出来的
    • 小明的系统解释器目录和我的可能不一样,就会导致虚拟环境无法使用
    • 那么,小明怎么知道项目中所用到的第三方模块和对应的版本呢?
    • 此时,我们就需要将第三方模块和版本进行收集
      1. 激活虚拟环境
      2. 执行 pip freeze > requirements.txt
      # 把当前激活的虚拟环境下,所有已经安装的第三方模块全部收集起来,记录在requirements.txt文件中
      
      • Python项目虚拟环境(超详细讲解)_第12张图片

    • 小明运行程序的时候需要安装项目所需要的第三方模块
      1. 打开项目:Open
        • Python项目虚拟环境(超详细讲解)_第13张图片

      2. 提示我们创建虚拟环境
        • 文件requirements.txt包含项目依赖项。您想要使用它创建一个虚拟环境吗
        • Python项目虚拟环境(超详细讲解)_第14张图片

        • 这样,虚拟环境就自动配置好了,并且所需要的第三方模块也全部自动下载安装好了
    • 如果上面的创建虚拟环境被我们直接关闭了,那我们就需要手动添加虚拟环境并安装第三发模块
      1. 手动添加虚拟环境
        • File —— Settings... —— Project: xxxx —— Python Interpreter —— 右侧设置,Add —— 设置虚拟环境目录和基于系统解释器
        • Python项目虚拟环境(超详细讲解)_第15张图片

      2. 根据requirements.txt文件安装第三方模块
        • pycharm —— Terminal —— 激活虚拟环境
        pip install -r requirements.txt
        
        • 打开Terminal,无法激活虚拟环境的时候,需要检查一下当前项目是否与虚拟环境绑定了
        • File —— Settings... —— Project: xxxx —— Python Interpreter —— 右侧 Python Interpreter
        • 点击下拉箭头,选择当前项目下虚拟环境目录下的python解释器
        • Python项目虚拟环境(超详细讲解)_第16张图片

  10. 系统解释器文档
    • requirements.txt和代码中无法体现解释器的版本
    • 一般我们都是通过文档来记录一些说明
    • 在项目中创建一个readme.md文件来记录python解释器版本和其他一些内容
    • readme.md文档
    项目基于python 3.9 开发

你可能感兴趣的:(Python,PyQt5,python,pyqt5,python虚拟环境,python,gui,虚拟环境)