前言
Miniconda 和 Pipenv 是两种用于管理 Python 环境和依赖的工具,但它们的功能和使用场景有所不同。
以下是它们的主要区别:
Miniconda
环境管理:
- Miniconda 是一个轻量级的 Anaconda 分发版,主要用于创建和管理独立的 Python 环境。
- 它可以使用
conda
命令来安装、更新和删除包,同时管理不同版本的 Python 和其他库。
包管理:
- Miniconda 使用
conda
包管理器,支持从 Conda 仓库安装软件包,能够处理二进制包的依赖关系。 - 可以安装非 Python 软件包(如 R、Ruby 等)。
- Miniconda 使用
适用场景:
- 适合需要同时管理多个编程语言或需要大量科学计算包的用户。
- 适合在复杂项目中管理依赖以确保环境的可重现性。
Pipenv
环境管理:
- Pipenv 是为了简化 Python 项目中的依赖管理而设计的工具,它结合了
pip
和virtualenv
的功能。 - Pipenv 自动创建和管理虚拟环境,为每个项目提供独立的环境。
- Pipenv 是为了简化 Python 项目中的依赖管理而设计的工具,它结合了
包管理:
- Pipenv 使用
Pipfile
来管理项目的依赖关系,依赖的版本会被记录在Pipfile.lock
中,确保环境的一致性。 - 仅支持 Python 包的管理。
- Pipenv 使用
适用场景:
- 更适合单个 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 | # 下载 Miniconda 安装脚本 |
同一协议后会让选择安装位置
这里根据个人情况输入,我这里数据目录都在data,所以输入
1 | /data/miniconda3 |
接下来显示
You can undo this by running
conda init --reverse $SHELL
? [yes|no]
这一步的功能是撤销 Conda 初始化带来的更改。这里我不想让 Conda 自动修改你的 shell 环境,所以选择yes
来执行这一步。
设置镜像
pip配置清华源加速
1 | mkdir ~/.pip/ |
加入以下代码
1 | [global] |
查看是否生效
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 | import sys |
前台运行
每个终端会话都可以激活其独立的环境,这样你可以在每个会话中运行不同环境中的应用。
1 | # 在第一个终端中 |
后台运行
也可以后台启动应用在对应的环境里
1 | nohup bash -c "source activate MiniCPMV && python pyversion.py" & |
或者
使用 conda run
命令,以便直接在指定环境中运行你的脚本,而不需要事先激活环境:
1 | nohup conda run -n MiniCPMV python pyversion.py & |
查看后台进程
1 | jobs |