anaconda工作原理及操作大全

2023-10-27

anaconda工作原理

安装路径:pkgs和site-packages

1.使用conda install在虚拟环境中安装的包都存放在了/anoconda3/pkgs 这个路径下,然后,我们在我们的虚拟环境中要用到或下载时先到该路径下去找,若有则直接将其复制到我们的虚拟环境中包得存放位置:~/anoconda3/envs/xxx/lib/python3.6/site-packages/。若没有,则先下载到/anoconda3/pkgs,在复制到虚拟环境包的路径下。

conda install xxx:这种方式安装的库都会放在anaconda3/pkgs目录下,这样的好处就是,当在某个环境下已经下载好了某个库,再在另一个环境中还需要这个库时,就可以直接从pkgs目录下将该库复制至新环境而不用重复下载。

2.pip install xxx:分两种情况,一种情况就是当前conda环境的python是conda安装的,和系统的不一样,那么xxx会被安装到anaconda3/envs/current_env/lib/python3.x/site-packages文件夹中,如果当前conda环境用的是系统的python,那么xxx会通常会被安装到~/.local/lib/python3.x/site-packages文件夹中

而在虚拟环境中使用pip install 安装时,则直接将包安装在了~/anoconda3/envs/xxx/lib/python3.6/site-packages/路径下。

因此我们可以在软件包无法被正常卸载的情况下直接进入site-packages中将他删除,然后在删完之后再次调用pip uninstall,可以达到即清空配置和包的效果。

conda和pip

使用conda install还是pip install下载包?

相同之处在于最终都会把包保存在anaconda3/envs/current_env/lib/python3.x/site-packages文件夹*

区别在于

1.conda的包复用性更强,pip的话不同环境每次都要重新下载,所以更推荐使用conda

2.conda有严格的检查机制,它会保证你当前装的package安装好之后能work,但是,它只检查用conda安装过的package。例如,你新安装的package会依赖numpy ,不过你已经安装numpy(e.g., 1.19.2),但是用pip安装的,不好意思,它会认为你没安装,然后用conda再安装一个依赖版本的numpy(e.g., 1.18.5)。conda这个时候,两个numpy可能就打架了。并且你pip list与conda list显示的numpy版本可能不一致,结果不知道最后运行程序的时候调用了哪个版本的numpy。

知乎讨论

目前并没有发现这样的问题,conda确实没法发现pip安装的包,但是他安装时会覆盖掉pip安装的包,并没有出现两个版本同时存在的情况,可能是我下载的都是一个版本

遵循一个原则即可,conda能下的包优先conda下载,找不到再用pip,99%都能找到

conda和pip的下载包的版本控制

下载包通常都会遇见版本控制的棘手问题,在这里做详细分析

pip和conda默认下载最新的包,而不是和已有环境相匹配

python包代码优先级

谁安装的xxx优先级较高会被import,这个问题通过下面这条命令可以解决:

python -m site

输出

sys.path = [
‘C:\Users\zxy\Desktop’,
‘D:\anaconda3\envs\test\python39.zip’,
‘D:\anaconda3\envs\test\DLLs’,
‘D:\anaconda3\envs\test\lib’,
‘D:\anaconda3\envs\test’,
‘D:\anaconda3\envs\test\lib\site-packages’,
‘D:\anaconda3\envs\test\lib\site-packages\win32’,
‘D:\anaconda3\envs\test\lib\site-packages\win32\lib’,
‘D:\anaconda3\envs\test\lib\site-packages\Pythonwin’,
]
USER_BASE: ‘C:\Users\zxy\AppData\Roaming\Python’ (exists)
USER_SITE:
‘C:\Users\zxy\AppData\Roaming\Python\Python39\site-packages’
(doesn’t exist) ENABLE_USER_SITE: True

也就是在虚拟环境test中优先从哪里找包

参考

  1. https://www.cnblogs.com/yibeimingyue/p/14660246.html

  1. https://www.zhihu.com/question/395145313

anaconda常用攻略

一、下载太慢,查找环境太慢,各种慢

使用Mamba完全代替conda(推荐)

安装时指定版本减少搜索空间 conda install python=3.7.4

采用最新版的conda (Conda4.7相比Conda4.6提速3.5倍, Conda 4.8应该不会比4.7慢)

等等见下面网址

参考

二、导出一个一模一样的conda环境给其他人用

注意:导出环境所有方法都仅限相同操作系统,因为会有很多依赖包是只能存在于该系统的,比如mnw32就只能出现在win32或win64系统中,导出就算到了linux也无法搜索到相应能安装的,就会报错,正确的做法是,直接运行项目,报错缺啥包安啥包就好了

1.导出版本

# 假设我们有一个环境叫 ehbio,可以导出为一个yml文件
conda env export --file ehbio_env.yml --name ehbio

# 然后换一台电脑,就可以完全重现这个环境了
conda env create -f ehbio_env.yml

2.或者直接导出整个环境

使用conda-pack直接从已经安装好的地方拷贝一份

参考 https://jishuin.proginn.com/p/763bfbd2e276

三、清理不用的包,在pkgs下存储了很多用不到的和之前老版本的包,很占内存

conda clean -a

修改anaconda 虚拟环境名称

打开所在目录,直接修改文件夹名称即可

我的目录如下

D:\software\anaconda3\envs

卸载anaconda

直接使用官方的卸载exe就行,卸载地很干净,自己加的环境变量都能给消掉,很强大

注意卸载有可能导致cmd一打开闪退,解决办法是删掉一个注册表AutoRun就可以了

https://www.zhihu.com/question/369808628
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

anaconda工作原理及操作大全 的相关文章

随机推荐

  • 【翻译】我们建立了一个.NET操作员SDK(所以您不必这样做)。

    我们用C 语言构建了一个 NET操作者SDK 因此您可以用C 或任何 NET语言构建自己的Kubernetes操作者 当然也 有Go Operator SDK 还有我们的Java Operator SDK 那么为什么不为 NET社区提供一些
  • 用 Visual Studio 2019 编译 FFmpeg 简单教程

    需要的东西 Visual Studio 2019 这个自行解决吧 本人用的是社区版 MSYS 环境 去 https www msys2 org 下载 本人下载的是 msys2 x86 64 20210725 exe yasm exe 去 h
  • Security in IP-Based IoT Node and Device Authentication

    Abstract The IoT security aims for enabling IoT data protection in various interconnected nodes These frameworks require
  • 触屏fling/scroll/drag的区别及其详细过程

    原文地址 Android 触屏fling scroll drag的区别及其详细过程 作者 飘锦丹枫 Google了一下 终于搞清了touch screen下的几种操作模式 对应的是事件 对于一个view 常用的操作有点击 click 和长按
  • 原生js实现ajax请求(带请求头header)和数据传参过程代码

    一 Ajax 概述 Ajax 是 Asynchronous Javascript And XML 的简写 Ajax是一门技术 并不是一门语言 使用XHTML CSS来标准化呈现 使用XML和XSLT进行数据交换及相关操作 使用XMLHttp
  • java程序输出中文乱码解决方案

    标题java程序输出中文乱码解决方案 乱码如下 你好 在一些Java程序中我们输入的中文在输出时会出现乱码的情况 一下是解决方案 1 在编译xx java文件时使用javac encoding utf 8 xx java语句进行编译可以解决
  • sed 过滤字符文本 (一行行的)

    前面写过用sed对整个文件过滤的 代码很简单 现在这个是能够取出其中的一行行来过滤的 为了获取更多的相关信息 注意列表中的空格先变为 然后再变回来 不然会出错 bin sh i grep chenbing my c temp sed s g
  • 关于代码评审

    总结于 代码之丑 专栏 郑晔 为何要做代码评审 代码评审 也就是很多人熟悉的 Code Review Wikipedia 上定义是这样的 代码评审 是指对计算机源代码系统化地审查 常用软件同行评审的方式进行 其目的是在找出及修正在软件开发初
  • c#处理json数据

    这篇文章讲的很详细 亲测可行 此外我在添加一点注意事项 1 json转C 实体类 之前用了一个转的不行 害的我半天弄不出来 后面找到一个 JSON转C 实体类 BeJSON com 这个转出来的很不错 一下子就成功了 2 如果想在没有环境的
  • Chrome插件消息传递实例

    首先吐槽 360极速浏览器应用开发平台 的开发文档 在消息传递 http open chrome 360 cn extension dev messaging html 一节中 翻译极其低劣 Sending a request from t
  • SpringBoot通过自定义字段注解以及反射获取对象

    在Java的开发过程中 注解的应用场景是非常广泛的 Java也提供了很多内置的注解 比如 Override Deprecated SuppressWarnings等等 之前也写过一篇注解相关的文章 SpringBoot自定义注解 AOP以及
  • mysql机制_Mysql 重连机制<转载>

    连续两天早上发现服务上不去了 mysql server has gone away 然后又通过mysql客户端连了一下mysql 没问题 看来是程序写错了 我的connection没有重连机制 查了一下相关的资料 django是每次操作都重
  • MA35D1记录1-源码编译

    上面是我的微信和QQ群 欢迎新朋友的加入 今天年假结束 突然发现新唐即将发布MA35D1 去官网和git仓库查了下 新唐趁我放假又偷偷更新了一些资料 之前发布的是yocto的环境 那个我倒也用 但时不时要翻墙 对国内用户来说 多少有点恶心人
  • linux(centos7)下建立web页面

    我打算从centos7配置IP开始记录 就是记录一下我的搭建过程 1 在VMware虚拟机选择centos7镜像安装完毕后 设置用户 密码 发现进入的是图形化界面 于是通过CTRL ALT F3进入命令行界面 现在用的VMware版本导致我
  • 【搞一点AUTOSAR】基于TC397的MACL-ADC配置解读(使用EB)

    搞一点AUTOSAR 基于TC397的MACL ADC配置解读 使用EB 文章目录 搞一点AUTOSAR 基于TC397的MACL ADC配置解读 使用EB 前言 一 ADC模块介绍 1 ADC模块的功能 2 模块相关概念首字母缩略介绍 二
  • Kafka-Consumer 源码解析 -- listener 注册和启动

    Kafka Consumer 源码解析 consumer 启动 和 listener 注册和启动 前言 1 KafkaListener注解说明 2 listener注册 2 1 KafkaListenerAnnotationBeanPost
  • 初学算法心得-二叉搜索树

    初学算法的心得笔记 二叉搜索树 二叉搜索树 插入 搜索 删除 通过标准库管理集合 二叉搜索树 二叉搜索树的结点 struct Node int key Node parent left right 插入 insert以根为节点寻找z该插入的
  • 基本网络常识(随身Wifi)

    答主还在上学 但是流量每次都不够用 每个月基本100GB起伏 但是又没有办宽带 所以想看看有没有很好的解决办法 直到看到了这个随身Wifi 用了一段时间感觉不错 所以也想通过此次来学习一波网络知识 尚未学习计算机网络 所以这次也只能算是基本
  • Git下载、安装与环境配置

    一 git下载与安装 百度git官网根据自己电脑系统下载相应的安装包 下载最新版本 点击红框或蓝框处即可 4 安装好后在桌面界面点击鼠标右键 会出现如下界面 输入git 回车 弹出上图所示界面就说明安装成功啦 二 环境配置 1 git安装好
  • anaconda工作原理及操作大全

    anaconda工作原理 安装路径 pkgs和site packages 1 使用conda install在虚拟环境中安装的包都存放在了 anoconda3 pkgs 这个路径下 然后 我们在我们的虚拟环境中要用到或下载时先到该路径下去找