关于虚拟环境中遇到的bug

news2025/3/5 4:02:55

conda和cmd介绍

介绍

Conda

  1. 概述

    • Conda是一个开源包管理系统和环境管理系统,尤其适用于Python和R语言的开发环境。
    • 它允许用户创建独立的虚拟环境,方便地管理依赖包和软件版本。
  2. 特点

    • 环境管理:可以创建、导入、导出和删除独立的环境。这对不同项目使用不同依赖版本时非常有用。
    • 包管理:支持安装、更新和卸载包,能够解决包之间的依赖关系。
    • 跨平台:支持在Windows、Unix和MacOS上运行。
  3. 优点

    • 避免软件包版本冲突。
    • 简化科学计算和数据分析中的软件管理。
    • 有大量的预编译包,方便安装(如NumPy、Pandas、SciPy等)。

CMD

  1. 概述

    • CMD(命令提示符)是Windows操作系统的一个命令行解释器,用于执行操作系统命令和脚本。
    • 主要用于进行文件管理、程序执行、系统设置等低级操作。
  2. 特点

    • 命令行界面:用户通过输入文本命令来与操作系统进行交互。
    • 操作范围:可以调用系统命令、批处理文件、运行可执行程序等。
  3. 优点

    • 强大的文件管理功能。
    • 可以执行各类批处理脚本,进行自动化任务。
    • 适合具备命令行操作经验的用户。

区别

  • 用途

    • Conda专注于包和环境管理,特别是在数据科学和机器学习领域。
    • CMD用于操作系统级别的任务,如文件管理和系统配置。
  • 运行环境

    • Conda在其环境中运行,使用特定的Python和依赖。
    • CMD是全系统的命令行界面,不限于特定的编程语言。

界面

conda

cmd

虚拟环境

Bash和创建的虚拟环境

Bash

  1. 概述

    • Bash(Bourne Again SHell)是一个Unix Shell,广泛用于Linux和MacOS等操作系统中。
    • 它是一种命令行解释器,允许用户通过文本命令与操作系统进行交互。
  2. 功能

    • 命令行操作:执行文件和程序、管理文件系统、运行脚本等。
    • 编程功能:支持条件语句、循环、函数等,可以编写复杂的脚本来自动化任务。
    • 环境管理:可以设置和使用环境变量,影响运行在该Shell中的程序的行为。
  3. 特点

    • 跨平台(在多种Unix/Linux环境中运行)。
    • 基本上用于与操作系统的交互,而不是专注于特定的编程语言环境。

创建的虚拟环境

  1. 概述

    • 虚拟环境是用于创建隔离的、独立的Python运行环境的工具,可以用venvvirtualenvconda等命令创建。
    • 每个虚拟环境都有自己的Python解释器和依赖包,互不干扰。
  2. 功能

    • 隔离依赖:可以为每个项目安装特定版本的包,避免包之间的冲突。
    • 简化部署:便于在不同项目中维护不同的依赖和库,而不影响全局Python环境。
  3. 特点

    • 创建的虚拟环境是特定于Python的,与特定的Python版本和依赖包绑定。
    • 适用于Python开发者,特别是在进行数据科学、机器学习等项目时

注意

cmd和conda

cmd和conda可以比喻成window下的两个兄弟,cmd是大哥,conda是二哥,cmd中的python和conda中的python是两个东西

bash和conda中创建的虚拟环境

bash和conda中创建的虚拟环境可以比喻成父子,bash的python是老爸,conda虚拟环境中的python是儿子,其实在bash中,我们默认下载的python,他就会放在一个全局的环境当中,我们pip下载的库,也会放在一个全局的环境当中,当全局环境中包下载过多,就会造成一些版本的冲突。我们可以把bash和conda比喻成两个文件夹,bash的python用的是bash中的库,conda的python用的是conda的库,两者互不干扰。

jupyternotebook

我们会使用pip jupyter notebook下载,但是如果你在cmd中(不是虚拟环境)下载,他就会创建一个jupyter,相当于一个全局jupyter,如果你在conda(不是虚拟环境)中下载,他就会在conda中创建一个jupyter,相当于在conda中的一个全局jupyter。所以我们可以创建一个虚拟环境,虚拟环境中启动jupyter notebook,会使用虚拟环境中的内核

内核

在Jupyter Notebook中,**内核(Kernel)**是一个重要的概念,它负责执行代码和处理用户输入。具体来说,内核是一个与用户的代码执行环境,它连接到Jupyter Notebook,以便处理用户的代码请求并返回结果。

虚拟环境的使用

cmd中

创建虚拟环境

pip virtualenv 这个要自己下载

virtualenv -p python解释器路径  名字(虚拟环境的名字)
 
# -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)会消失

删除虚拟环境

直接删除虚拟环境的文件夹

conda

conda常用的代码

conda -V                                        # 查看版本(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 create -p /projects/envs/myenv python=3.9 #在指定的路径下创建虚拟环境
 
conda activate env_name                         # 切换/激活虚拟环境,Linux系统前面要加source
conda deactivate                                # 退出虚拟环境
 
conda config --show                             # 查看虚拟环境默认位置
conda install 包名=version                      # 在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环境包列表

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络安全 | 渗透测试】GraphQL精讲一:基础知识

未经许可,不得转载, 文章目录 GraphQL 定义GraphQL 工作原理GraphQL 模式GraphQL 查询GraphQL 变更(Mutations)查询(Queries)和变更(Mutations)的组成部分字段(Fields)参数(Arguments)变量别名(Aliases)片段(Fragments)订阅(Subscriptions)自省(Introspecti…

什么是JTAG、SWD?

一、什么是JTAG? JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议,常用于芯片内部测试及对系统进行调试、编程等操作。以下从其起源、工作原理、接口标准、应用场景等方面详细介绍&#xff1a…

如何在Apple不再支持的MacOS上安装Homebrew

手头有一台2012年产的Macbook Pro,系统版本停留在了10.15.7(2020年9月24日发布的)。MacOS 11及后续的版本都无法安装到这台老旧的电脑上。想通过pkg安装Homebrew,发现Homebrew releases里最新的pkg安装包不支持MacOS 10.15.7&…

在笔记本电脑上用DeepSeek搭建个人知识库

最近DeepSeek爆火,试用DeepSeek的企业和个人越来越多。最常见的应用场景就是知识库和知识问答。所以本人也试用了一下,在笔记本电脑上部署DeepSeek并使用开源工具搭建一套知识库,实现完全在本地环境下使用本地文档搭建个人知识库。操作过程共…

Java面试第七山!《MySQL索引》

一、索引的本质与作用 索引是帮助MySQL高效获取数据的数据结构,类似于书籍的目录。它通过减少磁盘I/O次数(即减少数据扫描量)来加速查询,尤其在百万级数据场景下,索引可将查询效率提升数十倍。 核心作用:…

DeepSeek 助力 Vue3 开发:打造丝滑的弹性布局(Flexbox)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

动态表头报表的绘制与导出

目录 一、效果图 二、整体思路 三、代码区 一、效果图 根据选择的日期范围动态生成表头(eg:2025.2.24--2025.03.03)每个日期又分为白班、夜班;数据列表中对产线合并单元格。支持按原格式导出对应的报表excel。 点击空白区可新…

DeepSeek 助力 Vue3 开发:打造丝滑的密码输入框(Password Input)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

Linux 基础---文件权限

概念 文件权限是针对文件所有者、文件所属组、其他人这三类人而言的,对应的操作是chmod。设置方式:文字设定法、数字设定法。 文字设定法:r,w,x,- 来描述用户对文件的操作权限数字设定法:0,1,2,3,4,5,6,7 来描述用户对文件的操作…

SpringBoot五:JSR303校验

精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 松散绑定 意思是比如在yaml中写的是last-name,这个和lastName意思是一样的,-后的字母默认是大写的 JSR303校验 就是可以在字段增加…

【计算机网络】考研复试高频知识点总结

文章目录 一、基础概念1、计算机⽹络的定义2、计算机⽹络的目标3、计算机⽹络的组成4、计算机⽹络的分类5、计算机⽹络的拓扑结构6、计算机⽹络的协议7、计算机⽹络的分层结构8、OSI 参考模型9、TCP/IP 参考模型10、五层协议体系结构 二、物理层1、物理层的功能2、传输媒体3、 …

Error Density-dependent Empirical Risk Minimization

经验误差密度依赖的风险最小化 v.s. 经验风险最小化 论文: 《 Error Density-dependent Empirical Risk Minimization》 发表在: ESWA’24 相关代码: github.com/zxlml/EDERM 研究背景 传统的经验风险最小化(ERM)方…

02_NLP文本预处理之文本张量表示法

文本张量表示法 概念 将文本使用张量进行表示,一般将词汇表示为向量,称为词向量,再由各个词向量按顺序组成矩阵形成文本表示 例如: ["人生", "该", "如何", "起头"]># 每个词对应矩阵中的一个向量 [[1.32, 4,32, 0,32, 5.2],[3…

Spring Boot全局异常处理:“危机公关”团队

目录 一、全局异常处理的作用二、Spring Boot 实现全局异常处理(附上代码实例)三、总结: 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支持一下,感谢&#x1…

C# OnnxRuntime部署DAMO-YOLO香烟检测

目录 说明 效果 模型信息 项目 代码 下载 参考 说明 效果 模型信息 Model Properties ------------------------- --------------------------------------------------------------- Inputs ------------------------- name:input tensor:Floa…

[密码学实战]Java生成SM2根证书及用户证书

前言 在国密算法体系中,SM2是基于椭圆曲线密码(ECC)的非对称加密算法,广泛应用于数字证书、签名验签等场景。本文将结合代码实现,详细讲解如何通过Java生成SM2根证书及用户证书,并深入分析其核心原理。 一、证书验证 1.代码运行结果 2.根证书验证 3.用户证书验证 二、…

安装 cnpm 出现 Unsupported URL Type “npm:“: npm:string-width@^4.2.0

Unsupported URL Type "npm:": npm:string-width^4.2.0 可能是 node 版本太低了,需要安装低版本的 cnpm 试试 npm cache clean --force npm config set strict-ssl false npm install -g cnpm --registryhttps://registry.npmmirror.com 改为 npm insta…

探秘基带算法:从原理到5G时代的通信变革【九】QPSK调制/解调

文章目录 2.8 QPSK 调制 / 解调简介QPSK 发射机的实现与原理QPSK 接收机的实现与原理QPSK 性能仿真QPSK 变体分析 本博客为系列博客,主要讲解各基带算法的原理与应用,包括:viterbi解码、Turbo编解码、Polar编解码、CORDIC算法、CRC校验、FFT/…

四、数据存储

在爬虫项目中,我们需要将目标站点数据进行持久化保存,一般数据保存的方式有两种: 文件保存数据库保存 在数据保存的过程中需要对数据完成去重操作,所有需要使用 redis 中的 set 数据类型完成去重。 1.CSV文件存储 1.1 什么是c…

C# OnnxRuntime部署DAMO-YOLO人头检测

目录 说明 效果 模型信息 项目 代码 下载 参考 说明 效果 模型信息 Model Properties ------------------------- --------------------------------------------------------------- Inputs ------------------------- name:input tensor:Floa…