0%

通过 miniconda 使用 Python

关于 python 语言的学习,参见 c++ 开发人员学习 python 的记录

上述笔记缺少了 Python 环境和包管理方面的内容,在这里补充。

在 Linux 环境下,系统可能自带某个版本的 Python;而 Windows 系统一般没有。

无论哪种平台,一般不会更新升级/直接安装 Python 使用。而是,借用虚拟环境管理工具管理 Python 的版本。

每个环境可以使用不同版本的 Python ,安装不同版本的依赖包。

conda

conda 是一个开源的包管理系统 + 环境管理系统。

作为包管理系统,conda 和 Python 官方的 pip 各有侧重:

  • conda 更适合需要管理复杂依赖关系和创建隔离环境的数据科学和机器学习项目;

  • pip 更适合管理纯 Python 包,并且在 Python 开发社区中被广泛使用。

避免在同一个环境中混用 conda 和 pip,以防止潜在的冲突。

conda 在环境管理方面非常强大,是不二之选。

miniconda

Anaconda 包含了 conda 以及大量的预装软件包,这些软件包都是数据科学中常用的。

普通开发者使用 Miniconda 即可,它只包含 conda 和其依赖项,以及 Python 本身。

Anaconda/Miniconda 下载包,在墙里的体验很差。 Anaconda 国内源配置

目前(2022年2月11日) v2rayN 代理有问题,开启代理会造成 Anaconda 更新失败 等异常,报错如下:

1
2
3
4
5
6
CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/main/win-64/pluggy-1.0.0-py39haa95532_0.conda>
Elapsed: -

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.

Anaconda 完全入门指南 ,常用命令摘抄如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 切换到 base 环境
activate
# 切换到 learn 环境
activate learn
# 退出当前工作环境
conda deactivate
# 列出 conda 管理的所有环境
conda env list
conda info --envs
# 创建一个名为 learn 的环境并指定 python 版本为 3(的最新版本)
conda create -n learn python=3
# 删除 learn 环境及下属所有包
conda remove -n learn --all

# 列出当前环境的所有包
conda list
# 安装/ 卸载 / 更新 requests 包
conda install requests
conda remove requests
conda update requests

# 导出当前环境的包信息
conda env export > environment.yaml
# 用配置文件创建新的虚拟环境
conda env create -f environment.yaml
# 打包迁移
conda pack -n deepseek9 -o deepseek9.tar.gz

可以指定环境的路径(和 -n 互斥),但不推荐:切换/删除 环境时因为没有名字,只能输入全路径,不方便。

1
2
3
4
5
6
7
8
9
10
11
12
conda create -p D:\ProgramData\miniconda3\envs\langchain8 python=3.8.10
activate D:\ProgramData\miniconda3\envs\langchain8
conda remove -p D:\ProgramData\miniconda3\envs\langchain8 --all
# LLM langchain
conda create -n langchain python=3.12.9
conda activate langchain
pip install -U langchain langchain-deepseek langchain-ollama langchain-community openai-whisper conda-pack
pip install -U langgraph
# LLM langchian for arm
pip download --platform=manylinux2014_aarch64 --only-binary=:all: langchain langchain-deepseek langchain-ollama langchain-community conda-pack
pip install *.whl
# openai-whisper 失败,似乎是没有 arm 平台的?

使用 activate 命令在 windows 命令提示符窗口生效;在 powershell 中无效,执行 activate 后依然警告:

the environment has not been activated.

1
2
3
4
5
6
7
8
9
10
11
PS C:\Users\fnie> activate
PS C:\Users\fnie> python
Python 3.9.7 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32

Warning:
This Python interpreter is in a conda environment, but the environment has
not been activated. Libraries may fail to load. To activate this environment
please see https://conda.io/activation

Type "help", "copyright", "credits" or "license" for more information.
>>>

和 powershell 执行脚本的权限策略有关系,解决方案:How to activate conda environment from powershell?