Python环境Miniconda和Pipenv的区别及Miniconda的部署

前言

Miniconda 和 Pipenv 是两种用于管理 Python 环境和依赖的工具,但它们的功能和使用场景有所不同。

以下是它们的主要区别:

Miniconda

  1. 环境管理

    • Miniconda 是一个轻量级的 Anaconda 分发版,主要用于创建和管理独立的 Python 环境。
    • 它可以使用 conda 命令来安装、更新和删除包,同时管理不同版本的 Python 和其他库。
  2. 包管理

    • Miniconda 使用 conda 包管理器,支持从 Conda 仓库安装软件包,能够处理二进制包的依赖关系。
    • 可以安装非 Python 软件包(如 R、Ruby 等)。
  3. 适用场景

    • 适合需要同时管理多个编程语言或需要大量科学计算包的用户。
    • 适合在复杂项目中管理依赖以确保环境的可重现性。

Pipenv

  1. 环境管理

    • Pipenv 是为了简化 Python 项目中的依赖管理而设计的工具,它结合了 pipvirtualenv 的功能。
    • Pipenv 自动创建和管理虚拟环境,为每个项目提供独立的环境。
  2. 包管理

    • Pipenv 使用 Pipfile 来管理项目的依赖关系,依赖的版本会被记录在 Pipfile.lock 中,确保环境的一致性。
    • 仅支持 Python 包的管理。
  3. 适用场景

    • 更适合单个 Python 项目的依赖管理,特别是对于普通的 Web 应用和小型项目。
    • 旨在提高开发者的工作流效率,使得包管理过程更加直观。

总结

  • Miniconda 适合需要管理多种环境和不同语言包的用户,功能更强大,但相对复杂。
  • Pipenv 则更专注于 Python 项目的简单管理,适合日常开发使用。

安装Miniconda

查看服务器架构

1
uname -m

https://docs.anaconda.com/miniconda/

Miniconda3 Linux 64-bit:适用于常规的x86_64架构的Linux系统。这是最常见的PC和服务器使用的架构。
Miniconda3 Linux-aarch64 64-bit:适用于ARM架构的64位Linux系统。这种架构通常用于某些服务器、嵌入式系统和移动设备(如Raspberry Pi 4等)。
Miniconda3 Linux-s390x 64-bit::适用于IBM的s390x架构的Linux系统。这种架构主要用于IBM的Z系列大型机。

如下

服务器 地址 SHA256 hash
Linux Miniconda3 Linux 64-bit 33442cd3813df33dcbb4a932b938ee95398be98344dff4c30f7e757cd2110e4f
Miniconda3 Linux-aarch64 64-bit bdace1e233cda30ce37105de627e646ae8e04b036373eacfcd7fa8e35949f1b7
Miniconda3 Linux-s390x 64-bit 5a454c59314f63a0b860e2ed27d68f4a2516c77a7beda919fc11d3cd03c6b2d2

我这里是x86架构

1
2
3
4
5
6
7
8
# 下载 Miniconda 安装脚本
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

# 运行 Miniconda 安装脚本
bash Miniconda3-latest-Linux-x86_64.sh

# 初次安装需要激活 base 环境
source ~/.bashrc

image-20240929094757114

同一协议后会让选择安装位置

这里根据个人情况输入,我这里数据目录都在data,所以输入

1
/data/miniconda3

接下来显示

You can undo this by running conda init --reverse $SHELL? [yes|no]

这一步的功能是撤销 Conda 初始化带来的更改。这里我不想让 Conda 自动修改你的 shell 环境,所以选择yes来执行这一步。

设置镜像

pip配置清华源加速

1
2
mkdir ~/.pip/
vim ~/.pip/pip.conf

加入以下代码

1
2
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

查看是否生效

1
pip config get global.index-url

创建虚拟环境

创建一个名为 MiniCPMV 的新虚拟环境,并指定 Python 版本为 3.10

1
conda create -n MiniCPMV python=3.10 -y

激活 MiniCPMV 虚拟环境

1
conda activate MiniCPMV

查看版本

1
python -V

取消激活

1
conda deactivate

查看所有的环境

1
conda env list

删除某个环境

1
conda remove --name MiniCPMV --all

环境复制

导出当前环境的配置

1
conda env export > environment.yml

快速重建相同的环境

1
conda env create -f environment.yml

多环境运行

测试脚本

pyversion.py

1
2
3
4
5
6
7
import sys

# 获取 Python 版本
python_version = sys.version

# 输出 Python 版本
print("当前 Python 版本是:", python_version)

前台运行

每个终端会话都可以激活其独立的环境,这样你可以在每个会话中运行不同环境中的应用。

1
2
3
4
5
6
7
# 在第一个终端中
conda activate env1
python script1.py # 运行 env1 中的脚本

# 在第二个终端中
conda activate env2
python script2.py # 运行 env2 中的脚本

后台运行

也可以后台启动应用在对应的环境里

1
nohup bash -c "source activate MiniCPMV && python pyversion.py" &

或者

使用 conda run 命令,以便直接在指定环境中运行你的脚本,而不需要事先激活环境:

1
nohup conda run -n MiniCPMV python pyversion.py &

查看后台进程

1
jobs