当前位置: 首页 > news >正文

Windows上配置完整Linux开发环境(二):Linux发行版Anaconda安装与使用

1、什么是环境

在软件开发和计算机科学领域,"环境"通常指的是一个包含软件和配置的容器,提供了一个特定的运行环境或工作环境。环境可以涉及多个层面,包括硬件环境、操作系统环境和软件环境。

1.1、硬件环境

包括计算机的物理硬件,如CPU(X86、ARM、RISC架构)、GPU、内存、硬盘等。不同的硬件环境可能影响软件的性能和可用性。

1.2、操作系统环境

操作系统是计算机硬件和软件之间的桥梁,提供了基本的服务和资源管理。不同的操作系统(如Windows、macOS、Linux、HarmonyOS等)提供不同的用户接口和系统调用,影响了软件在其上运行的方式。

1.3、软件环境

这包括在特定系统上安装的软件、库和工具。软件环境的配置可能对应用程序的运行和开发产生重要影响。开发者通常需要创建一个独立的软件环境,以确保项目的依赖项得到满足。

总的来说,"环境"是一个涵盖硬件、操作系统和软件的概念,用于提供一个特定的工作或运行条件。在不同的上下文中,这个词可能有不同的含义。我们的硬件和操作系统相对固定,因此编程中我们所说的环境一般指软件环境。

2、为什么需要Anaconda或Miniconda

问题1、运行某个GitHub项目时,作者使用的python2.7.0,而你电脑上安装的python3.8,该卸载python重新安装?

问题2、在进行时,你是否碰到过以下报错

① numba 0.54.1 requires numpy<1.21,>=1.17,but you have numpy 1.21.5 which is incompatible.(库与库之间不兼容)

② AttributeError: type object 'Callable' has no attribute '_abc_registry'(python版本太低)

③ ModuleNotFoundError: No module named ‘utils‘(使用了错的python版本)

因此我们需要一个能够创建不同软件环境的工具,并且这些环境之间不互项影响,还可以让我们下载不同版本的库和工具。那么一个开源的包管理系统和环境管理系统 Anaconda 和 Miniconda 应运而生。

3、什么是Anaconda和Miniconda

3.1、一图以蔽之

3.2、Anaconda

Anaconda是python编写的一个用于科学计算、数据分析和机器学习的开源发行版,它包含了一系列常用的Python库和工具,以及一个强大的包管理系统。其主要特点和组件包括:

① Conda:是Anaconda提供的包管理工具,用于安装、更新、卸载软件包,以及创建、导出、列出和移除环境。Conda还可以跨平台工作,支持Windows、macOS和Linux。

② Python:Anaconda默认安装了最新版本的Python解释器。

③ Anaconda Navigator:是一个图形用户界面,提供了可视化的方式来管理和操作Anaconda环境、包、虚拟环境以及其他与数据科学和机器学习相关的工具。通过Anaconda Navigator,用户可以轻松地启动Jupyter Notebook、Spyder、QtConsole等工具,也可以创建、管理和切换虚拟环境。Navigator的直观界面使得对Anaconda的管理更加方便和可视化。

④ Jupyter Notebook:一个交互式的笔记本界面,支持代码、文本和图形的混合编辑和执行。Jupyter Notebook是进行数据分析和可视化的强大工具。

⑤ Spyder:一个用于科学计算和数据分析的集成开发环境(IDE)。

⑥ NumPy、pandas、Matplotlib、scikit-learn、SciPy:用于科学计算和可视化数据的库,提供多维数组对象和各种计算功能。

⑦ IPython:一个强化的Python交互式解释器,增强了代码的交互性和可读性。

3.3、Miniconda

Miniconda相当于Anaconda的简化版,只提供了以下组件:

① Conda:是Anaconda提供的包管理工具,用于安装、更新、卸载软件包,以及创建、导出、列出和移除环境。Conda还可以跨平台工作,支持Windows、macOS和Linux。

② Python:Anaconda默认安装了最新版本的Python解释器。

4、在Linux发行版中安装Conda

在Anaconda官网选择合适的版本,复制下载链接。

## 手动安装(可指定安装路径)

1、Win+R,输入cmd打开命令行

2、输入wsl 进入Linux发行版

3、当前目录是挂载到c盘的,更改当前用户的主目录

cd ~
如果是root用户进入的是/root/

如果以bob用户登陆,进入的是用户的主目录,即/home/bob/

4、根据链接下载Anaconda或Miniconda安装包

wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh

5、运行安装包

bash Anaconda3-2023.09-0-Linux-x86_64.sh

6、不要一直Enter!!最后几步会问是否同意许可协议(按Enter就默认No),选择Yes。

7、最后 Anaconda 官网建议您输入“yes”来初始化 Anaconda Distribution 。

8、安装完后输入conda --help,显示conda用法则安装成功

## 自动安装(默认当前路径)

bash Anaconda3-2023.09-0-Linux-x86_64.sh -b

将以下内容写入用户.bashrc中

__conda_setup="$('/root/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"

if [ $? -eq 0 ]; then

eval "$__conda_setup"

else

if [ -f "/root/anaconda3/etc/profile.d/conda.sh" ]; then

. "/root/anaconda3/etc/profile.d/conda.sh"

else

export PATH="/root/anaconda3/bin:$PATH"

fi

fi

unset __conda_setup

详细参考:在Linux 安装了Anaconda

5、Conda 常用命令

conda –V # 查看conda版本

conda --help/-h # 查看帮助

conda update conda # 更新 conda

conda update -n base -c defaults conda # 更新 conda 软件

conda search <package_name> # 搜索可用的所有版本包

conda env list # 查看所有虚拟环境

conda create --name <virtual env name> # 创建虚拟环境

## conda create --name py37 python=3.7 numpy pandas

conda create --name <new_env_name> --clone <old_env_name> # 复制环境

conda remove --name <virtual env name> --all # 删除环境及环境中的所有库

conda install --name <env_name> <package_name> # 在指定环境中安装包

conda update <package_name> # 更新当前环境中的包

conda remove <package_name> # 移除当前环境中的安装包

conda remove -n <env_name> <package_name> # 移除指定环境中的安装包

conda activate <virtual env name> # 激活环境

conda detactive <virtual env name> # 退出环境

conda install package # 安装指定库

conda list # 列出该环境已安装的包

conda clean --all # 移除包缓存、索引、Lock文件

conda env export > my_env.yml # 导出环境配置文件

conda env export -n myR > my_env.yml # 导出指定名称的环境

conda env export --no-builds > environment.yml # 使用 no-builds 选项(更通用)

conda env create -f my_env.yml # 根据配置文件安装环境

# 示例:创建myR环境

conda create -n myR r-base

# 示例:清除myR环境

conda remove --name myR --all

6、卸载Anaconda

conda install anaconda-clean
anaconda-clean --yes

rm -rf ~/anaconda3

详细参考:Anaconda官方文档和Conda常用命令大全

7、conda vs mamba

mamba 不是 conda 的子包,而是 conda 的“替代求解器/替代客户端”,可以理解成“更快版本的 conda”。mamba 用 C++ 重写了依赖求解(SAT),使用方法与 conda 一模一样。

可以这样理解:

组件类比
conda传统导航系统(慢但稳),python 写的 solver
mamba同一地图 + 高性能引擎(快很多),C++写的solver,并行高性能依赖解析
libmambamamba 的核心引擎

conda install -n base -c conda-forge mamba # 安装 mamba 到 conda base 环境

以后分工:

场景用谁
创建环境conda
装复杂包(shap / pytorch / xgboost)mamba ⭐
简单包conda 或 pip

或者给 conda 设置 solver 为 libmamba

conda install conda-libmamba-solver -n base -c conda-forge
conda config --set solver libmamba

注意!!

mamba = conda 的“替代执行器”

在使用层面可以做到替代 conda,但本质上 mamba 仍在调用conda 的环境结构,依赖 conda 的package 体系!!

8、高级用法

8.1、指定版本文件,一次性解决所有包兼容问题

conda create \
--prefix "$HOME/conda_envs/tabnet-py38" \
python=3.8 \
pytorch=1.8.2 \
torchvision=0.9.2 \
torchaudio=0.8.2 \
cudatoolkit=11.1 \
numpy=1.23.5 \
pandas=1.5.3 \
scipy=1.10.1 \
scikit-learn=1.3.2 \
shap=0.44.1 \
pytorch-tabnet=4.1.0 \
-c pytorch-lts \
-c nvidia \
-c conda-forge \
-c defaults \
--dry-run # 先看是否可以结局,可以的话把这个参数去掉

8.2、conda 环境搬家神器(另一台计算机)

它会自动把所有硬编码路径替换成占位符

# 1. 在旧机器上安装打包工具
conda install conda-pack

# 2. 打包环境(比如打包名为 myenv 的环境)
conda pack -n myenv -o myenv.tar.gz

# 3. 把 myenv.tar.gz 拷贝到新机器

# 4. 在新机器上解压到目标目录(比如 /opt/conda/envs/myenv)
mkdir -p /opt/conda/envs/myenv
tar -xzf myenv.tar.gz -C /opt/conda/envs/myenv

# 5. 激活它(正常激活即可)
conda activate myenv

8.3、环境克隆到同一电脑的另一路径

conda create -p /home/user/env2 --clone /home/user/env1

8.4、导出 environment.yml(最干净,但需要联网,且要重新编译,较慢)

conda env export > env.yml
# 拷到新机器,在新机器重装
conda env create -f env.yml -p /new/path/to/env

http://www.jsqmd.com/news/1130664/

相关文章:

  • ByteDance-Seed/PAR三大核心模型对比:3scale_400M vs 3scale_400M_pdb vs 3scale_by_ratio_60M
  • accounting.js技术架构与React集成:现代前端货币格式化解决方案
  • docker-flask-example数据库管理:使用Flask-DB进行迁移与种子数据操作
  • Playwright自动化测试入门:从环境搭建到首个脚本实战
  • 终极字体转换指南:facetype.js让Three.js文字渲染更高效
  • 技术问答:管理和选择不同的R,如何做好R的笔记,使用 openxlsx 包
  • 星露谷物语自动化模组终极指南:提升农场效率的完整解决方案
  • PDFMathTranslate:学术PDF文档翻译的终极解决方案,完美保留公式与排版
  • 写vue3+ jsx+ts语法+ storybook展示的组件库
  • TPS65263三重降压转换方案在嵌入式系统中的应用
  • 为什么说AsPoem是诗词学习的最佳选择?探索5大创新功能
  • Altium Designer 元件库:从零到一的PCB设计加速器
  • Playwright CLI:面向AI编码代理的浏览器自动化完整指南
  • 交叉编译 attr
  • VCPToolBox深度解析:从工具调用到AI生存环境的3大范式突破
  • 网线4、6未交叉,导致设备联网有问题
  • Win11Debloat:三步打造你的专属Windows系统优化方案
  • 翻译Self-Prompt Mechanism for Few-Shot Image Recognition
  • 高通Linux音频驱动:3类ACDB设备ID冲突排查与DTS配置修复
  • 如何快速检测Mac应用是否原生支持Apple Silicon芯片?Silicon工具完全指南
  • 从手动到智能:如何用27个AI助手重塑你的编程工作流
  • 从混乱到优雅:SQL Formatter如何让你的数据库查询代码焕然一新
  • 图形工具Xfermode介绍
  • 端侧AI模型OTA更新策略:增量、回滚与A/B部署的工程实践
  • 3分钟搞定Android Studio中文界面:告别英文恐惧的终极解决方案
  • 高效打造专属AI歌手:Retrieval-based-Voice-Conversion-WebUI实战指南
  • abawuwao实战指南:基于Wan 5B的图像文本到视频AI模型深度解析
  • Games102
  • 交叉编译 MQTT/Mosquitto
  • PCSX2终极指南:在电脑上完美运行PS2经典游戏