anaconda工作原理及操作大全

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
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值