conda安装、建立及打包移动环境——离线Ubuntu Server

        今天再给生信泥潭中挣扎的兄弟推荐一个运行环境及package管理的优秀方法,即利用conda建立独立的package运行环境。

        

        “Conda 是一个开源的软件包管理和环境管理系统,广泛用于数据科学和机器学习等领域。它的优势在于能够在不同的操作系统上(如 Windows、macOS 和 Linux)统一管理软件包和依赖项,解决了软件兼容性问题。Conda 提供了虚拟环境功能,使得用户可以创建、管理和隔离多个独立的环境,确保不同项目之间的依赖项不会冲突。此外,Conda 还支持多个语言的包管理,如 Python 和 R,使得跨语言的项目开发更加便捷。它的丰富的包库和简单的命令行操作,使得软件安装和更新变得更加容易和高效。”

        先在这里对conda、miniconda及anaconda进行区分:

  • Conda 是一个包管理和环境管理工具,支持安装和管理软件包以及创建虚拟环境。
  • Anaconda 是一个更全面的发行版,包含 Conda 以及一系列常用的数据科学和机器学习软件包,如 NumPy、Pandas、Jupyter Notebook 等,适合需要完整数据科学环境的用户。
  • Miniconda 是 Conda 的轻量级版本,只包含 Conda 和其必要的依赖项,没有预装其他软件包,适合用户自行选择安装需要的软件包。

        总的来说,Conda 是核心工具,Miniconda 提供基础框架,而 Anaconda 提供了完整的解决方案。

        在此处选择轻量化的miniconda安装,进行后续的package管理等。

Part 1 Miniconda下载及安装

1.1 Miniconda下载

        Miniconda下载地址为:

        https://docs.anaconda.com/miniconda/miniconda-other-installer-links/

        寻找合适的Linux版本、处理器平台及python版本的miniconda版本:

1.2 Miniconda安装

        将下载的文件(Miniconda3-py311_24.5.0-0-Linux-x86_64.sh)上传至服务器目标位置“/path/to/your/dir”并运行:

chmod a+x /path/to/your/dir/Miniconda3-latest-Linux-x86_64.shcd path/to/your/conda_dir/path/to/your/dir/Miniconda3-latest-Linux-x86_64.sh

        根据提示安装miniconda即可,安装进程结束后在环境变量中加入以下内容:

# 向/home/username/.bashrc中加入:PATH="path/to/your/conda_dir/miniconda3/bin/":$PATH# 重载.bashrcsource ~/.bashrc# 将conda初始化脚本加入shell配置文件conda init#重启shell

        安装完成!


Part 2 conda创建环境及安装package

2.1 conda创建python环境

# 创建名为“py_env_name”并预装python 3.12的conda环境conda create -n py_env_name python=3.12# 启动名为“py_env_name”的conda环境conda activate py_env_name# conda退出当前环境conda deactivate

2.2 conda安装软件包

        在conda环境中安装软件包,尽量利用conda进行安装,可以避免一些兼容性的问题。在安装了python的环境中,可以利用“pypip”进行安装:

conda activate py_env_namepip install package_name# 使用国内(清华)源进行安装pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name# 清理pip缓存pip cache purge

        利用conda进行安装:

conda activate py_env_nameconda install package_name

        conda可以设置国内(清华)源以加速package下载:

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/main/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/conda config --set show_channel_urls yes

        conda的package有不同的渠道(channel),指代不同的存储和分发软件包的仓库,在下载不同package的时候可以指定渠道(-c),常用的channel包括:由社区驱动的conda软件包渠道(Conda-Forge)以及专门用于生物信息学分析的软件包渠道(Bioconda):

conda install -c bioconda biopythoconda install -c conda-forge pandas

        也可以将conda的渠道加入conda配置中:

conda config --add channels conda-forgeconda config --add channels bioconda# 设置conda下载的channel优先级conda config --set channel_priority strict# 显示conda下的channelconda config --show channels# 显示conda下的channe优先级conda config --show channel_priority

        此处设置严格的channel优先级:Conda 会严格按照渠道的优先级来解决包的依赖关系。也就是说,Conda 会首先尝试从优先级最高的渠道中安装所有包,只有在该渠道中找不到包时,才会转向下一个渠道。严格的渠道优先级可以确保所有包及其依赖项尽量从同一个渠道安装,这有助于避免不同渠道间的包版本冲突,提高系统的稳定性和兼容性。

2.3 conda下载软件包并利用本地包进行安装(以pandas为例)

        可以利用一台联网的相同处理器平台的linux计算机下载软件包并移动到offline的Linux Server中进行安装。

# 创建一个新的环境(可选,但推荐以避免影响现有环境)conda create -n download_envconda activate download_env# 使用 conda 下载 pandas 安装包,但不进行安装。将包下载到本地目录中conda install pandas --download-only --copy -c conda-forge# pandas 及其依赖项将存储在 Conda 的 pkgs 目录中mkdir pandas_packagescp -r ~/anaconda3/pkgs/pandas* pandas_packages/cp -r ~/anaconda3/pkgs/dependency_package* pandas_packages/ # 复制所有依赖包

        将“pandas_packages”复制到offline的Linux Server中,并安装pandas

conda create -n myenvconda activate myenv# 利用本地pandas包进行安装conda install --use-local pandas_packages/pandas-*.tar.bz2# 或conda install --offline -c file:///path/to/pandas_packages pandas

        验证pandas的安装:

conda activate myenvpython -c "import pandas as pd; print(pd.__version__)"

Part 3 打包conda环境并重建环境

        可以发现,以上利用conda下载package并利用本地进行安装的方式虽然可以实现在offline Server上的安装,但当有大量package需要在环境中重建的时候便有些繁琐,故可以利用conda-pack进行整体环境打包迁移

3.1 conda环境打包

        只需在需要打包的linux系统中安装conda-pack即可,用来重建conda环境的offline Server仅需conda即可。

conda activate base # 保证在based环境中conda install -c conda-forge conda-packconda pack -n env_name -o env_name.tar.gz

3.2 重建环境

        将“env_name.tar.gz”传输至offline Server的conda环境路径中:

        “/path/to/your/miniconda3/envs/”

cd /path/to/your/miniconda3/envs/mkdir env_nametar -xzvf env_name.tar.gz -C /path/to/your/miniconda3/envs/env_name# 检查conda环境conda env listconda activate env_name# 检查conda安装的packageconda list# 检查pip安装的packagepip list# 利用python检查是否可以调用python包(假设安装了pandas)python>>import pandas as pd>> # 未报错

Part 4 其他常用conda命令

# 显示conda版本conda --version# 显示conda帮助信息conda --help# conda列出所有环境conda env listconda info --envs# 导出环境配置文件conda env export > environment.yml# 从配置文件创建环境conda env create -f environment.yml# 删除环境conda remove -n myenv --all# 更新包conda update package_name# 删除包conda remove package_name# 搜索包conda search package_name

        WeChat public account:长安不老李

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值