去年我在调研AIGC软件的时候,遇到有一些项目需要用到conda安装库。不过用得比较少,而且用pip也完全可以胜任,我就没有特意去学。不过这种事情吧……大刘说了,这玩意就像埋在后院里的尸体,埋得再深也没用,睡不好觉。早晚有一天你得把它挖出来,扔得远远的。
最近做的项目中,有一些环境就是Anaconda搭建的,由于系统的原因,我安装virtualenvwrapper时候总是报错。我也懒得一点点排查了,于是正好借助这个机会学了一下conda。
 
简单来说,conda就是一个python的包管理器,我需要用到的它的功能主要有两方面,一方面是虚拟环境的管理,另一方面是第三方包的管理。conda主要有两种,Anaconda和miniconda,功能差不多,只不过Anaconda内置装好了很多第三方包,的确是比miniconda要用起来更方便一点。
但是,鉴于Anaconda所属公司最近到处发律师函,我觉得还是慎用。如果没有钱购买正版,就还是乖乖用miniconda吧。
 
miniconda在官方网站和清华的镜像站都可以下载,为了下载速度快一些,我是在镜像站下载的。
 

 

注意要看好了具体版本哦!要关注python的版本(3.x,再细划的小版本就不需要了),操作系统(Windows/MAC/Linux),还有具体的系统架构(x86_64(Intel或AMD)和aarch64(ARM))。
选择好了需要的miniconda版本,下载下来其实是个.sh文件。需要先给他执行权限
 
chmod 755 Miniconda3-py311_24.4.0-0-Linux-aarch64.sh

 

(别原封不动地复制哈,看自己下载的文件名)
然后执行
 
./Miniconda3-py311_24.4.0-0-Linux-aarch64.sh 

 

跳出一堆说明,一路空格到最后,yes同意。选择目录我这里是默认的,可以自己设置。
等了一会儿安装完成,但好像自动初始化没成功,因为我这里命令提示符前面直接就是名字,没有括号,说明conda没有初始化。这时候用conda相关命令是不成功的,都会提示command not found。但我发现安装的最后有一句提示:
 
eval "$(/home/ubuntu/miniconda3/bin/conda shell.YOUR_SHELL_NAME hook)"  # 注意这里 YOUR_SHELL_NAME 应该替换为 bash ,可不是你的用户名

 

执行完果然名字前面多了个(base)。再执行一下 
 
conda init 

 

做一下初始化就好啦。也可以用 
 
conda env list 

 

查看一下当前已经安装的虚拟环境:
 

 

跟virtualenvwrapper的workon命令类似。
 
接下来我们配配置一下conda源。这很好理解,类似于pip源,通过国内镜像源下载安装包速度能快一些。这里使用的仍然是清华的源(pip我也爱用清华源,不过这只是使用习惯,用阿里之类的源也可以)。添加镜像源:
 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2/

 

这样就把miniconda配置完成了,可以使用了。
其实miniconda的使用还是很直接明了的,会用virtualenv和pip的话conda也会很容易理解和上手。我就不详细把每个conda命令列出来了,只列一些常用的吧:
 
虚拟环境相关
查看虚拟环境
conda env list
创建虚拟环境   conda create -n env python=3.11
复制虚拟环境 conda create --name new_conda_name --clone old_conda_name
删除虚拟环境 conda remove -n env --all
进入虚拟环境 conda activate env
退出虚拟环境 conda deactivate
包管理相关
查看包列表 conda list
安装包 conda install package=1.11.1
包升级 conda update package
搜索包
conda search package
删除包 conda remove package
 
*注:
(1)标红色是需要替换成实际情况的部分。
(2)创建虚拟环境的时候可以指定python版本,这里只需要指定到第一个点后的小版本,无需再小的版本,conda会在系统中搜索目标版本中最高的版本。例如指定python=3.11而你的系统里最高是3.11.5,那conda就会选择这个python来创建环境了。
(话说,一般情况下是不是也不会同一个小版本下再区分安装不同的更小的版本啊?除非是多人操作)
(3)在conda创建的虚拟环境中,同样可以使用pip来安装和删除包。并且,如果你手头只有一个requirements.txt来自动化安装包的话,conda没有响应的命令,只能 pip install -r requirements.txt。但还是推荐安装包时优先使用conda install,没有的话再pip install(这也是当初我一直回避使用conda的原因之一,跟pip混合管理的时候很麻烦)。
 
好了,conda掌握这些基本就够了。使用conda的目的就是让python环境搭建起来更容易,它本身当然也是尽量简明扼要才好,对吧!
posted @ 2024-06-08 22:31 _小苹果 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 被这个问题生生搅了两个月。 那还是在3月底的时候,我们这个程序啊,并不是BS架构的。写好之后,肯定不能把一堆py源码发给客户嘛,要使用pyinstaller打包的,做成一个exe的可执行程序。 pyinstaller怎么使用我就不教了,这个不是今天想说的重点,而且网上的教程还是很全面的。 我想说的是 阅读全文
posted @ 2024-05-14 16:04 _小苹果 阅读(1030) 评论(0) 推荐(0) 编辑
摘要: 其实问题是由上一篇文章(https://www.cnblogs.com/anpengapple/p/18179353)的结尾引出来的。不需要了解背景的话,我现在需要做的是,右键打开桌面上的chrome快捷方式的属性,在目标的后面增加一个参数。我不想傻傻地手动添加,想交给程序来处理。 首先需要简单来说 阅读全文
posted @ 2024-05-13 15:13 _小苹果 阅读(560) 评论(0) 推荐(0) 编辑
摘要: 我发现,我已经三年多没有更新博客了。这几年一直感觉没什么可写的,工作上没遇到的问题python的不多,主要是前端页面上遇到的问题,感觉写起来比较困难,一写就要贴上去很多代码,还没什么必要,不贴又说不明白,所以干脆不写了。 今年开始研究新玩意儿了——爬虫。俗话说,爬虫爬得好,牢饭吃到饱(不是)。以前感 阅读全文
posted @ 2024-05-08 11:36 _小苹果 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 事情的起因我就不说了,总之是一个json惹的祸。以前也发生了这样的问题,但是我没有在意,以为是我疏忽了,今天才发现,原来你是这样的json! 呐,其实很简单,随便几行代码就能说清楚: import json dic = {1: "apple", 2: "banana", 3: "cat"} dump 阅读全文
posted @ 2021-01-21 20:21 _小苹果 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 又好久没写博客了,因为公司在做的东西涉及到业务方面的比较多,没法写。 最近在做下载功能,在网上能找到很多例子,但是都不太好用,自己半研究半照抄,终于搞出来了能用的东西。所以觉得应该记录一下。 下载什么呢?下载Excel。我所维护的几个系统里,有一些数据,需要在页面上导出。以前的做法,我都是用定时任务 阅读全文
posted @ 2020-06-26 18:15 _小苹果 阅读(1347) 评论(0) 推荐(0) 编辑
摘要: 这篇不是技术文章。只是教一下怎么设置签名。不愿意看前言的可以跳过,直接看正文。很短。 ——————这里是前(废)言(话)的分隔线—————— 在博客园呆了有几年了,文章一直都写在这里的,渐渐地百度可以搜到我的文章了,有一篇文章已经有了10万+,真让我喜出望外。 不过也有一个大问题:我发现有些网站喜欢 阅读全文
posted @ 2019-08-29 19:13 _小苹果 阅读(1017) 评论(0) 推荐(0) 编辑
摘要: 前段时间被某个前端小可爱鄙视了一下,说我博客都一年不更新了,我不服,明明还有俩月才到一年呢。不过说是这么说,还是要更新一下的。 以上都是借口,下面开始正文。 我公司的某个内部系统,用django做的,项目中不可避免地有下载文件的地方,以前偷懒,我都是用django自带的方法,在项目的总urls.py 阅读全文
posted @ 2019-08-29 18:07 _小苹果 阅读(3023) 评论(1) 推荐(2) 编辑
摘要: 还没想好怎么写,先起了个古怪的名字。好吧,这篇文章纯属拔草之作,只讲一种大概的解决方案。 不过,我们大概得先解决掉两个概念:一个是状态机,一个是工作流。 什么是状态机?大概来说,就是我这里有一堆的状态,我在进行一项工作的时候,有一系列的状态;我要从一个状态转移到另一个状态。举个最简单的栗子:比如一个 阅读全文
posted @ 2018-10-06 09:26 _小苹果 阅读(3163) 评论(0) 推荐(0) 编辑
摘要: 太长了,我决定还是拆开三篇写。 (一)段落篇(paragraph) (二)表格篇(table) (三)样式篇(style)(本篇) 选你所需即可。下面开始正文。 在前两篇中,我们已经解析出了paragraph和table,那么,如何把它们按顺序组合在一起呢?毕竟,一般的word不会固定把表格和文字分 阅读全文
posted @ 2018-01-29 00:17 _小苹果 阅读(12108) 评论(8) 推荐(0) 编辑
点击右上角即可分享
微信分享提示