前言
Miniconda 和 Pipenv 是两种用于管理 Python 环境和依赖的工具,但它们的功能和使用场景有所不同。
主要看有没有切换Python虚拟环境版本的需求,如果有则使用Miniconda。
没有的化可以使用
Pipenv
或者Python内置的venv
。
以下是它们的主要区别:
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
Windows
https://www.anaconda.com/download/success
Windows上安装后先添加环境变量
1 | D:\Tools\miniconda3 |
测试
1 | conda --version |
Linux
查看服务器架构
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
来执行这一步。
初始化设置
设置镜像
这种方式是永久生效的
中科大的源
1 | conda config --remove-key channels |
查看
1 | conda config --show |
在输出中,你应该能够看到类似以下的内容:
1 | channels: |
设置虚拟环境位置
1 | conda config --add envs_dirs "D:\Tools\MinicondaEnvs" |
你可以通过以下命令来验证配置是否已经成功应用:
1 | conda config --show |
在输出中,你应该能够看到类似以下的内容:
1 | envs_dirs: |
切换32位
当前主流的系统为64bit系统,Miniconda软件为64bit软件,因此使用Miniconda创建虚拟环境安装python时默认安装的python为64bit版本,但部分研发场景需要调用32bit依赖,只能使用32bit的python,因此需要安装32bit的python。
查询环境位数
1 | conda info |
系统默认的平台配置为win-64,即64bit
切换
CMD下
1 | # 切换64bit平台配置为32bit |
PowerShell下
1 | # 切换64bit平台配置为32bit |
平台切换成功后,重新执行conda info
,可以看到platform参数切换为win-32,即32bit,此时创建虚拟环境的Python也会是32位。
注意
这种方式切换位数是临时生效的。
创建虚拟环境
创建一个名为 xh-marking-client-qt 的新虚拟环境,并指定 Python 版本为 3.10
1 | conda create -n xh-marking-client-qt python=3.8.2 -y |
激活 xh-marking-client-qt 虚拟环境
1 | conda activate xh-marking-client-qt |
查看版本
1 | python -V |
退出虚拟环境到base环境中
1 | conda deactivate |
查看所有的环境
1 | conda env list |
删除某个环境
1 | conda remove --name xh-marking-client-qt --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 xh-marking-client-qt && python pyversion.py" & |
或者
使用 conda run
命令,以便直接在指定环境中运行你的脚本,而不需要事先激活环境:
1 | nohup conda run -n xh-marking-client-qt python pyversion.py & |
查看后台进程
1 | jobs |