049.Python包和模块_虚拟环境超详细讲解

无奋斗不青春

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

分隔线

虚拟环境

    • 虚拟环境
        • Python项目虚拟环境
    • 虚拟环境管理工具
        • 常用虚拟环境管理工具
        • virtualenv管理工具
        • virtualenvwrapper 集中式虚拟环境管理
        • pipenv 基于项目的虚拟环境管理
        • conda管理工具

虚拟环境

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
      
      • 在这里插入图片描述
    • 这就是我们的系统解释器
    • 在我们的电脑上,同时可以安装多个版本的系统解释器(如: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开发
      • 我们的项目结构如下:

        • 在这里插入图片描述
      • 当我们需要安装第三方模块到这个目录下时,需要执行以下语句

        E:\Projecs\PyQt5\venv\Scripts\pip.exe install pyqt5
        
    • 项目2:ArtCopy开发
      • 我们的项目结构如下:

        • 在这里插入图片描述
      • 当我们需要安装第三方模块到这个目录下时,需要执行以下语句

        E:\Projecs\ArtCopy\venv\Scripts\pip.exe install cx-Oracle==8.3.0
        

  • 虚拟环境实战(PyCharm)
  • 通过PyCharm创建项目,并配置虚拟环境
  1. 新建项目

    • 在这里插入图片描述
  2. 配置虚拟环境

    • 虚拟环境目录一般放在项目目录内,方便后期项目结束之后删除项目的同时就将虚拟环境一同删除了。不再需要额外去删除虚拟环境了
    • 虚拟环境路径中不能有中文,否则会导致虚拟环境失效
    • 在这里插入图片描述
  3. 配置完成后,项目目录如下

    • 此时,site-package目录里面的都是pip工具相关,还没有任何第三方模块
    • 在这里插入图片描述
  4. 环境已经有了,那么我们写一句简单的代码运行一下

    print('Holle World!')
    
    • 在这里插入图片描述

    • 程序运行命令

    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命令行程序无法激活虚拟环境

    • 修改之前,无法激活虚拟环境

      • 在这里插入图片描述
    • 修改命令行程序:

      • File —— Settings... —— Tools —— Terminal —— Shell path —— 选择CMD
      • 在这里插入图片描述
    • 修改之后,重新打开项目:成功激活虚拟环境

      • 在这里插入图片描述
  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 —— 点-删除官方源,点+增加国内镜像源
    • 在这里插入图片描述
  9. 第三方包收集和安装

    • 当项目开发完毕之后,要把项目发给小明。小明需要运行

    • 我们发送项目的时候,不要把venv文件(虚拟环境)发送给小明

    • 因为我们的虚拟环境,是基于我们的系统解释器虚拟出来的

    • 小明的系统解释器目录和我的可能不一样,就会导致虚拟环境无法使用

    • 那么,小明怎么知道项目中所用到的第三方模块和对应的版本呢?

    • 此时,我们就需要将第三方模块和版本进行收集

      1. 激活虚拟环境
      2. 执行 pip freeze > requirements.txt
      # 把当前激活的虚拟环境下,所有已经安装的第三方模块全部收集起来,记录在requirements.txt文件中
      
      • 在这里插入图片描述
    • 小明运行程序的时候需要安装项目所需要的第三方模块

      1. 打开项目:Open

        • 在这里插入图片描述
      2. 提示我们创建虚拟环境

        • 文件requirements.txt包含项目依赖项。您想要使用它创建一个虚拟环境吗

        • 在这里插入图片描述

        • 这样,虚拟环境就自动配置好了,并且所需要的第三方模块也全部自动下载安装好了

    • 如果上面的创建虚拟环境被我们直接关闭了,那我们就需要手动添加虚拟环境并安装第三发模块

      1. 手动添加虚拟环境

        • File —— Settings... —— Project: xxxx —— Python Interpreter —— 右侧设置,Add —— 设置虚拟环境目录和基于系统解释器
        • 在这里插入图片描述
      2. 根据requirements.txt文件安装第三方模块

        • pycharm —— Terminal —— 激活虚拟环境
        pip install -r requirements.txt
        
        • 打开Terminal,无法激活虚拟环境的时候,需要检查一下当前项目是否与虚拟环境绑定了
        • File —— Settings... —— Project: xxxx —— Python Interpreter —— 右侧 Python Interpreter
        • 点击下拉箭头,选择当前项目下虚拟环境目录下的python解释器
        • 在这里插入图片描述
  10. 系统解释器文档

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


虚拟环境管理工具

常用虚拟环境管理工具
  • virtualenv
    • virtualenv是一个第三方的Python虚拟环境管理工具,可以在Python 2和Python 3上使用。它提供了更多的功能和选项,例如可以指定Python解释器版本、创建基于现有环境的虚拟环境等。
    • 虚拟环境之间切换比较麻烦(需要分别进入到每个虚拟环境的Scripts目录,通过activate激活)
  • virtualenvwrapper
    • virtualenvwrapper是一个基于virtualenv开发的一个工具包,用于管理Python虚拟环境的第三方工具,它提供了一组命令和功能,使得创建、切换和删除虚拟环境更加方便
    • 会将虚拟环境创建在特定的文件中(windows系统,默认在用户目录的Envs文件夹中)
  • pipenv
    • pipenv可以看做是pip和virtualenv的组合体,基于Pipfile和Pipfile.lock,更好地管理包之间的依赖关系
    • 会将虚拟环境创建在特定的文件中(windows系统,默认在用户目录的.virtualenvs文件夹中)
  • conda
    • conda是一个流行的开源虚拟环境和包管理工具,适用于Python和其他编程语言。它可以创建、激活和管理虚拟环境,并提供了强大的包管理功能,可以方便地安装、更新和删除包。
    • 会将虚拟环境创建在特定的文件中(windows系统,默认在用户目录的.conda\envs文件夹中)
virtualenv管理工具
  • 官方文档:https://virtualenv.pypa.io/en/latest/
  • 用户指南:https://virtualenv.pypa.io/en/latest/user_guide.html
  • 安装管理工具
    pip install virtualenv
    
    # 需要将virtualenv库装在哪个python环境,就将cmd切换目录到python安装路径下的Scripts目录
    # 如:
        # cd D:\Python\Python39\Scripts
        # pip install virtualenv
    
  • 语法
    virtualenv -p python解释器路径  env_name
    
    # -p python解释器路径       # 虚拟环境使用指定版本的python解释器
    # 例:virtualenv -p D:\Python\Python39\python.exe env
    
    # --system-site-packages    # 指定虚拟环境继承系统的三方库
    # 添加这个参数:检索库的时候,在当前虚拟环境找不到,会到系统的三方库中查找
    # 不加这个参数:检索库的时候,只会在当前的虚拟环境中查找
    # 例:virtualenv --system-site-packages env
    
    # 注意:通过系统python环境创建虚拟环境的时候,并不会将系统python环境中安装的第三方库安装到虚拟环境中
    
  • 创建虚拟环境
    1、创建项目文件夹
    2、cmd命令行工具,进入到项目文件夹
    3、执行命令:
    virtualenv env_name
    # 如:virtualenv env
    
    
  • 激活虚拟环境
    # cmd命令行工具,进入到虚拟环境下的Scripts目录
    # 执行命令:
    activate  或者 activate.bat
    
    # 执行之后,可以看到cmd命令工具中的路径前面多了一个标识:(env_name)
    # 例:(env) C:\Users\Administrator\Desktop\MyPro02\env\Scripts>
    # 此时,就是进入到了虚拟环境中,接下来所有的操作都是在当前虚拟环境中
    
  • 操作虚拟环境
    pip install requests
        # 如果不激活创建的虚拟环境,库会被安装到全局环境;
        # 激活虚拟环境后,则会安装在虚拟环境中
    
    python test.py
        # 使用虚拟环境中的python解释器执行test.py文件
        # 如果test.py文件中导入了某个包,会优先到虚拟环境中去查找相关的包
    
  • 退出虚拟环境
    # cmd命令行工具,进入到虚拟环境下的Scripts目录
    # 执行命令
    deactivate 或者 deactivate.bat
    
    # 退出虚拟环境之后,cmd命令工具中的路径前面的标识(env_name)会消失
    
  • 删除虚拟环境
    直接删除虚拟环境整个文件夹目录
    
  • virtual项目交接
    # 方案1:
        # 连同虚拟环境和项目一起拷贝给别人
    
    # 方案2
        # 在虚拟环境中,冻结依赖需求文本
        pip freeze > requirements.txt
        # 把项目和依赖需求文本发给别人
        # 别人自己创建虚拟环境,根据依赖需求文本安装相关库
        pip install -r requirements.txt
    
    
  • 注意:项目与虚拟环境的关系是多对多,一个虚拟环境可以用于多个项目,一个项目也可以切换多个虚拟环境。
virtualenvwrapper 集中式虚拟环境管理
  • 官方文档:https://pypi.org/project/virtualenvwrapper-win/
  • virtualenvwrapper是一个基于virtualenv开发的一个工具包
  • virtualenv缺点
    • 不便于多个虚拟环境管理
    • 虚拟环境之间切换比较麻烦(需要分别进入到每个虚拟环境的Scripts目录,通过activate激活)
  • 安装管理工具
    pip install virtualenvwrapper-win
    
  • 创建虚拟环境
    # 打开cmd命令行工具
    # 执行命令
    
    mkvirtualenv env_name
    
    # 将虚拟环境创建在特定的文件中(windows系统,默认在用户目录的Envs文件夹中。如:C:\Users\Administrator\Envs)
    # 虚拟环境创建完成之后,会自动激活当前新建的虚拟环境
    
    # 示例:
    # mkvirtualenv fzenv1
    # mkvirtualenv fzenv2
    # mkvirtualenv fzenv3
    
  • 查看所有虚拟环境
    # 打开cmd命令行工具
    # 执行命令
    
    lsvirtualenv        # 本质是执行 dir /b /ad "C:\Users\Administrator\Envs" 命令
    
    
  • 切换激活虚拟环境
    # 打开cmd命令行工具
    # 执行命令
    
    workon env_name
    
    # 示例
    # workon fzenv1
    # workon fzenv2
    
  • 退出虚拟环境
    # 在激活虚拟环境前提下
    # 执行命令
    
    deactivate
    
  • 删除虚拟环境
    # 打开cmd命令行工具
    # 执行命令
    
    rmvirtualenv env_name
    
    # 示例
    # rmvirtualenv fzenv1
    
pipenv 基于项目的虚拟环境管理
  • 官方文档:https://docs.pipenv.org/
  • pip + env (包管理 + 虚拟环境)
  • 更加基于项目,使得我们更加关注与项目管理。工具内部封装了以上两个工具
  • virtualenvwrapper缺点
    • 虚拟环境操作与包的安装分离了,分别通过virtualenv操作虚拟环境、pip操作三方库
    • 项目所依赖的三方包记录需要通过pip freeze > requirements.txt手动更新记录,容易造成更新不及时
    • 无法记录包之间的依赖关系(如:requests所依赖的包只会直接记录,并不会体现其依赖关系)
  • pipenv优势
    • 不需要再分别使用pip和virtualenv对包和虚拟环境进行操作,直接使用pipenv即可
    • pipenv会自动创建虚拟环境,以及安装三方库
    • 会自动记录项目依赖的所有三方库
    • 使用pipfile和pipfile.lock取代requirements.txt(好处:做一个环境锁定,可以查看包之间的依赖关系)
  • 安装管理工具
    pip install pipenv
    
    # 查看版本:pipenv --version
    
  • 语法
    pipenv [OPTIONS] COMMAND [ARGS]...
    
    # 参数说明
    # --where           # 显示项目文件所在路径
    # --venv	        # 显示虚拟环境下实际文件所在路径
    # --py	            # 显示虚拟环境下Python解释器所在路径
    # --envs	        # 显示虚拟环境的选项变量
    # --rm	            # 删除虚拟环境
    # --man	            # 显示帮助页面
    # --three / --two	# 使用Python 3或Python 2创建虚拟环境
    # --site-packages	# 附带安装原Python解释器中的第三方工具包
    # --version	        # 显示版本信息
    # -h, --help	    # 显示帮助信息
    
    # 常用命令
    # install	        # 创建虚拟环境或者安装第三方工具
    # shell	            # 进入虚拟环境
    # uninstall	        # 卸载一个三方库
    # update	        # 卸载当前所有的三方库,并安装它们的最新版本
    # open	            # 在编辑器中查看一个三方库
    # lock	            # 锁定并生成Pipfile.lock文件
    # run	            # 在虚拟环境中执行命令
    # check	            # 检查安全漏洞
    # graph	            # 显示当前依赖关系图信息
    
  • 创建虚拟环境
    # 打开cmd命令行工具,进入项目目录
    # 执行命令
    
    pipenv install [--python python解释器路径]
    # 不指定--python参数,则用系统默认python解释器创建虚拟环境
    # 将虚拟环境创建在特定的文件中(windows系统,默认在用户目录的.virtualenvs文件夹中。如:C:\Users\Administrator\.virtualenvs)
    
    # 示例
    # pipenv install
    # 使用系统默认版本python解释器创建虚拟环境
    
    
    # pipenv install --python D:\Python\Python39\python.exe
    # 使用指定版本python解释器创建虚拟环境
    
    # 
    
  • 激活虚拟环境
    # 打开cmd命令行工具,进入项目目录
    # 执行命令
    
    pipenv shell
    
    # 注意:shell是激活当前项目的虚拟环境,所以必须先进入到指定项目的目录
    # 激活之后,可以看到cmd命令工具中的路径前面多了一个标识:(env_name)
    
  • 操作虚拟环境
    # 打开cmd命令行工具,进入项目目录
    # 执行命令
    
    # 执行代码
    python xxx.py
    
    # 安装三方库
    pipenv install 包名
    
    # 添加--skip-lock 可以跳过lock步骤
    pipenv install 包名 --skip-lock 
    # 等最后再使用pipenv lock统一执行lock操作
    
    # 注意:pipenv install执行
        # 1、检测当前项目对应的虚拟环境是否存在,不存在则创建虚拟环境
        # 2、在虚拟环境中安装指定的三方库,如果没有指定则只创建虚拟环境不安装三方库(pipenv install)
        # 3、在项目目录下,通过pipfile和pipfile.lock记录当下已经安装的三方库
    # 注意:在虚拟环境中,通过pip install也能安装三方库,但是不会更新pipfile和pipfile.lock文件
    
    # 查看包依赖结构
    pipenv graph
    
    # 卸载包
    pipenv uninstall 包名
    
    
    
  • 退出虚拟环境
    # 在激活虚拟环境前提下
    # 执行命令
    
    exit
    
  • 删除虚拟环境
    # 打开cmd命令行工具,进入项目目录
    # 执行命令
    
    pipenv --rm
    
  • 项目交接1:通过pipfile和Pipfile.lock文件
    # 使用 pipfile和Pipfile.lock 文件
    
    # 1、生成/更新Pipfile.lock文件
    pipenv lock     # 把当前环境的模块锁定,执行命令后它会更新 Pipfile.lock 文件
    
    # 2、把代码文件、Pipfile 文件和 Pipfile.lock 文件 发给别人
    
    # 3、别人创建项目目录,将代码文件、Pipfile 文件和 Pipfile.lock 文件存放到项目目录
    # 创建虚拟环境,同时会自动识别Pipfile和Pipfile.lock文件安装项目依赖的所有三方库
    
    # 打开cmd命令行工具,进入项目目录
    # 执行命令
    pipenv install
    
  • 项目交接2:通过requirements.txt文件
    # 生产环境的依赖导出
    pipenv requirements > requirements-pro.txt
    
    # 生产环境+开发环境的依赖导出
    pipenv requirements --dev > requirements.txt
    
    # 开发环境的依赖导出
    pipenv requirements --dev-only > requirements-dev.txt
    
    # 将Pipfile文件和Pipfile.lock文件里面的包名导出到requirements.txt文件
    pipenv lock -r  > requirements.txt
    
    # 通过requirements.txt安装依赖
    pipenv install -r requirements.txt
    
  • pipfile文件
    # 主要用来配置包的下载网址
    [[source]]
    # 指定包的安装镜像源,一般使用国内的镜像来加快下载速度
    url = "https://mirrors.aliyun.com/pypi/simple/"
    verify_ssl = true
    name = "pypi"
    
    # 项目运行所需要依赖的第三方工具,即下载安装的工具包
    [packages]
    flask-authz ==='2.4.0'
    # * 表示安装最新稳定版本
    flask = '*'
    
    # 开发依赖的工具包
    [dev-packages]
    # 开发环境需要的包,不常用
    
    # Python 解释器配置
    [requires]
    # 指定Python解释器的版本
    python_version = "3.9"
    
  • Pipfile.lock 文件
    • Pipfile.lock 文件是通过哈希算法将包的名称、版本和依赖关系生成哈希值,可以保证包的完整性,锁定 Python 版本,便于以后项目发布使用固定的包。
    • 在正常情况下,Pipfile.lock 文件不会自动更新工具的版本,例如安装的 requests 库一开始是 2.26.0 版本,后来指定安装 2.25.1 版本,那么 Pipfile 文件会更新,但是 Pipfile.lock 文件不会更新,只有手动执行 pipenv lock 命令后才会更新。
    • Pipfile.lock 文件保存了包的哈希值,这是确保生产环境和开发环境包信息一致的关键。当我们把项目从开发环境复制到生产环境,我们只需要执行 pipenv install,而无须重新安装之前在开发环境中安装的包,这很省心。
conda管理工具
  • conda支持Python、R、Java、JavaScript、C等多种开发语言的包、依赖和环境管理工具,能运行在Windows、MacOS、Linux多个平台,可以在本地轻松创建、保存、切换环境。当安装anaconda时,会自动安装conda工具。

  • conda与pipenv,venv等虚拟环境管理工具的最大的不同在于:

    • conda虚拟环境是独立于操作系统解释器环境的,即无论操作系统解释器什么版本(哪怕2.7),我也可以指定虚拟环境python版本为3.6,而venv是依赖主环境的
  • 安装管理工具

    • 通过安装Anaconda/Miniconda进行安装
    • 关于Anaconda/Miniconda:https://mirror.tuna.tsinghua.edu.cn/help/anaconda/
    • Anaconda
      • Anaconda官方下载地址:https://www.anaconda.com/download
      • Anaconda国内下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
    • Miniconda
      • Miniconda 是一个 Anaconda 的轻量级替代,默认只包含了 python 和 conda,但是可以通过 pip 和 conda 来安装所需要的包。
      • Miniconda官方下载地址:https://docs.conda.io/projects/miniconda/en/latest/
      • Miniconda国内下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
    • Anaconda/Miniconda安装完之后,会默认创建一个base虚拟环境
    • Anaconda/Miniconda默认安装源是国外的,三方库安装速度慢
    • 修改Anaconda/Miniconda安装源
      # TUNA 还提供了 Anaconda 仓库与第三方源的镜像,各系统都可以通过修改用户目录下的 .condarc 文件来使用 TUNA 镜像源。
      # Windows 用户无法直接创建名为 .condarc 的文件,可先通过Anaconda Prompt执行以下生成.condarc文件之后再修改
      conda config --set show_channel_urls yes
      
      # 生成的.condarc文件在在用户目录的.conda目录下
      # 使用记事本打开.condarc文件,粘贴下面的代码即可修改安装源
      
      channels:
        - defaults
      show_channel_urls: true
      default_channels:
        - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
        - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
        - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
      custom_channels:
        conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
        msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
        bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
        menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
        pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
        pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
        simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
        deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
        
      # 运行 conda clean -i 清除索引缓存,保证用的是镜像站提供的索引
      
  • 启动Anaconda

    • 开始菜单 —— Anaconda/Miniconda —— Anaconda Prompt
  • Anaconda常用命令

    conda -V                                        # 查看版本
    conda create -n env_name python=3.9             # 创建python虚拟环境(指定python版本)
    conda create -n env_name2 --clone env_name1     # 克隆虚拟环境
    conda create -n env_name python=3.9 包名=x.x    # 创建虚拟环境的同时安装指定版本的三方库
    conda install 包名                              # 在base环境中安装包
    conda install -n env_name 包名                  # 在指定虚拟环境安装包
    activate env_name                               # 激活虚拟环境,Linux系统前面要加source
    conda remove -n env_name --all                  # 移除虚拟环境及所有包
    conda remove env_name 包名                      # 移除指定虚拟环境中的某个包
    conda env list                                  # 查看虚拟环境列表
    conda list                                      # 查看base环境包列表
    
  • 创建虚拟环境

    conda create --name env_name python[==3.6]
    conda create -n env_name python[==3.6]
    
    # 最后python不指定版本,会指定最新版本创建虚拟环境
    # 将虚拟环境创建在特定的文件中(windows系统,默认在用户目录的.conda\envs文件夹中。如:C:\Users\XieFeng\.conda\envs)
    
  • 查看conda版本

    conda -V
    
  • 更新conda版本

    conda update conda
    
  • 查看所有虚拟环境列表

    conda env list
    
  • 切换/激活虚拟环境

    conda activate env_name
    
  • 操作虚拟环境

    # 安装三方库
    conda install 包名
    
    # 查看三方库版本
    conda search 包名
    
    # 卸载三方库
    conda remove 包名
    # 会自动卸载依赖包
    
  • 查看虚拟环境下安装的所有包列表

    conda list
    
  • 退出虚拟环境

    conda deactivate
    
  • 删除虚拟环境

    conda remove -n env_name --all
    # 删除虚拟环境及其内部安装的所有包
    
  • 项目交接1:通过.yml环境文件

    # 使用conda-pack或conda env export等工具生成.yml环境文件
    
    # 1、生成/更新.yml文件
    conda env export > env_name.yml     # 把当前环境的模块锁定,执行命令后它会更新 .yml文件
    
    # 2、把代码文件和.yml文件发给别人
    
    # 3、别人创建项目目录,将代码文件和.yml文件存放到项目目录
    # 通过.yml文件创建虚拟环境,会自动安装项目依赖的所有三方库
    
    # 打开cmd命令行工具,进入项目目录
    # 执行命令
    conda env create -f env_name.yml
    
  • 项目交接2:通过requirements.txt文件

    # conda 批量导出包含环境中所有组件的requirements.txt文件
    conda list -e > requirements.txt
    
    # 通过运行以下命令来安装requirements.txt文件中列出的所有依赖项
    conda install --yes --file requirements.txt 
    # 这种执行方式,一遇到安装不上就整体停止不会继续下面的包安装
    
    # 但是这里存在一个问题,如果requirements.txt中的包不可用,则会抛出“无包错误”。
    # 使用下面这个命令可以解决这个问题
    
    $ while read requirement; do conda install --yes $requirement; done < requirements.txt
    
    # 或者这样也行
    
    FOR /F "delims=~" %f in (requirements.txt) DO conda install --yes "%f"
    # 这个执行能解决上面出现的不执行后续包的问题
    
    # 如果想要在conda命令无效时使用pip命令来代替,那么使用如下命令:
    
    $ while read requirement; do conda install --yes $requirement || pip install $requirement; done < requirements.txt
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/311369.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDC机房服务器搬迁之运行了几年的服务器没关过机,今天关机下架,再上架突然起不来了,怎么快速处理?

环境 戴尔R420 服务器 1U 2台直连存储 4U CentOS 7 问题描述 IDC机房服务器搬迁之运行了几年的服务器没关过机,今天关机下架,再上架突然起不来了,怎么快速处理? 服务器上电开机就出现进入紧急模式 Welcome to emergency mode! After logging in, type “journalctl …

开关电源PFC电路原理详解及matlab仿真

PFC全称“Power Factor Correction”&#xff0c;意为“功率因数校正”。PFC电路即能对功率因数进行校正&#xff0c;或者说能提高功率因数的电路。是开关电源中很常见的电路。 在电学中&#xff0c;功率因数PF指有功功率P&#xff08;单位w&#xff09;与视在功率S&#xff08…

动态pv策略和组件

pv和pvc&#xff0c;存储卷&#xff1a; 存储卷&#xff1a; emptyDir 容器内部&#xff0c;随着pod销毁&#xff0c;emptyDir也会消失 不能做数据持久化 hostPath&#xff1a;持久化存储数据 可以和节点上的目录做挂载。pod被销毁了数据还在 NFS&#xff1a;一台机器&am…

centos7下升级openssh9.4p1及openssl1.1.1v版本

背景&#xff1a;客户服务器扫描出一些漏洞&#xff0c;发现和版本有关&#xff0c;漏洞最高的版本是9.3p2&#xff0c;所以我们安装一个openssh9.4p1版本及openssl1.1.1v版本 虽然我们进行了镜像备份&#xff0c;为了安全先安装telnet以防止升级失败无法通过ssh连接服务器 一…

大模型在广告ctr预估中的应用

背景 预训练大模型在ctr预估方面取得了不错的效果&#xff0c;但是应用大模型方面还主要停留在提取离线预训练&#xff0c;然后使用大模型的打分结果或者中间的embedding向量&#xff0c;这种级联的应用方式相对灵活方便。但是这种使用大模型提取特征的方式存在自身的问题&…

无法解析的外部符号 “public: virtual void * __cdecl MyTcpsocket::qt_metaca

问题&#xff1a;严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2001 无法解析的外部符号 "public: virtual void * __cdecl MyTcpsocket::qt_metacast(char const *)" (?qt_metacastMyTcpsocketUEAAPEAXPEBDZ) SmartTool D:\…

[软件工具]pdf多区域OCR识别导出excel工具使用教程

首先我们打开软件&#xff0c;界面如下&#xff1a; 如上图&#xff0c;使用非常简单&#xff0c;步骤如下&#xff1a; &#xff08;1&#xff09;选择工具-取模板选择一个pdf文件划定自己需要识别的区域&#xff0c;如果你选择第2页指定区域则软件统一识别所有pdf第2页指定区…

鸿蒙基础开发实战-(ArkTS)像素转换

像素单位转换API的使用 主要功能包括&#xff1a; 展示了不同像素单位的使用。展示了像素单位转换相关API的使用。 像素单位介绍页面 在像素单位介绍页面&#xff0c;介绍了系统像素单位的概念&#xff0c;并在页面中为Text组件的宽度属性设置不同的像素单位&#xff0c;fp…

AI副业拆解:文字生成图文绘本,赋予你的故事生命,Story Agent智能绘本创作神器震撼登场!

大家好我是在看&#xff0c;记录普通人学习探索AI之路。 对话即创作&#xff0c;颠覆传统&#xff01;&#x1f680; Story Agent&#xff0c;一款前所未有的开源故事绘本生成智能体&#xff0c;让你与科技的边界交融&#xff0c;以对话的形式轻松唤醒内心深处的故事精灵。&…

Object.keys()

目录 1、Object.keys() 是什么&#xff1f; 2、Object.keys(obj) 用法&#xff1a; 2.1 如果对象是一个对象&#xff0c;会返回对象的属性名组成的数组&#xff1b; 2.2 如果对象是一个数组&#xff0c;则返回索引组成的数组&#xff1a; 2.3 如果是字符串&#xff0c;返回…

【微服务】日志搜集es+kibana+filebeat+redis+logstash(单机)

日志搜集系统搭建 基于7.17.16版本 ps: 项目是toB的&#xff0c;日志量不大 前置准备 软件下载 7.17.16版本。8.x版本需要JDK11 elastic.co/downloads/past-releasesJDK java8 Linux elastic 软件不能以root用户启动&#xff0c;需要创建用户 sudo useradd elastic #给此…

【Redis】Redis持久化方式

Redis 中有两种持久化方式&#xff0c;分别为 RDB 和 AOF。 RDB RDB 全称 Redis Database Backup file&#xff0c;也叫做 Redis 数据快照。简单来说就是把 Redis 中的数据记录到磁盘中。当 Redis 实例故障重启后&#xff0c;从磁盘读取快照文件&#xff0c;恢复数据。 RDB有…

Vue新手村(二)

目录 1、计算属性 2、事件修饰符 2.1、stop事件修饰符 2.2、prevent事件修饰符 2.3、self事件修饰符 2.4、once事件修饰符 3、按键修饰符 3.1、enter回车键 1、计算属性 计算属性&#xff1a; computed&#xff1a;vue官方提供一个计算属性作用&#xff1a;在完成某种业…

文件上传进阶绕过技巧(一)和靶场实战

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性&#xff0c;仅供安全研究与学习之用&#xff0c;读者将信息做其他用途&#xff0c;由Ta承担全部法律及连带责任&#xff0c;文章作者不承担任何法律及连带责任。 0、环境准备 请移步《文件上传靶场实战&#xff1a;upl…

【C语言刷题每日一题#牛客网HJ73】——计算日期到天数转换(给定日期,计算是该年的第几天)

目录 问题描述 思路分析 数据结构构建部分 计算部分 代码实现 结果测试 此问题解决方法不唯一&#xff0c;这里介绍的是一种使用数组和循环实现的简单办法 问题描述 思路分析 问题的要求是输入一个日期&#xff0c;计算这是当年的第几天——要解决这个问题&#xff0c;逻…

S7-200SMART实例之冒泡法排序子程序

需求分析 编写程序实现冒泡法排序的算法。 冒泡法排序是一种简单的排序算法。因其过程如同水中气泡最终会上浮到水面一样&#xff0c;故被形象地称为“冒泡法排序”。 实现原理 根据以上需求分析可以按以下步骤实现算法&#xff1a; 1.比较相邻的元素。如果第一个比第二个…

Java面试题之JVM

Java面试题之JVM 1. JVM的组成部分及其作用&#xff1f;2. JVM的堆和栈的区别&#xff1f;3. 简述一下垃圾回收机制&#xff1f;(垃圾回收的原理&#xff1f;)4. 垃圾回收器都有什么&#xff1f;该怎么选择&#xff1f;5. 如何判断垃圾可以回收了&#xff1f;6. 垃圾回收算法有…

c++学习笔记-STL案例-机房预约系统1-准备工作

前言 准备工作包括&#xff1a;需求分析、项目创建、主菜单实现、退出功能实现 目录 1 机房预约系统需求 1.1 简单介绍 1.2 身份介绍 1.3 机房介绍 1.4 申请介绍 1.5 系统具体要求 1.6 预约系统-主界面思维导图 2 创建项目 2.1 创建项目 2.2 添加文件 ​编辑 3 创建…

小程序基础学习(事件处理)

概述&#xff1a;点击某一个标题&#xff0c;使标题选中增加不同颜色。 <!--pages/four/four.wxml--> <navigation-bar title"牧原" back"{{false}}" color"black" background"#FFF"></navigation-bar> <view c…

讲讲关于跨域的问题,什么是跨域?怎么办?

文章目录 什么是跨域如果非同源&#xff0c;共有三种行为受到限浏览器客户端和向服务器跨域请求的判定流程 跨域问题演示参考 以下内容为我结合他人知识进行的自我总结, 如有错误欢迎指出~ 什么是跨域 跨域就是不同的域名下的资源访问&#xff0c;会被浏览器的本地安全策略阻…
最新文章