为什么是 Conda?

Conda 是一个 python 包管理器 & 虚拟环境管理器,用于隔离项目环境和系统环境,每一个虚拟环境有自己的 python 解释器以及软件包 pkg。类似的包管理软件还有 pdmpoetry 。Conda 不同的地方在于它还能负责 cuda、g++ 等软件包的安装,尤其适用于科学计算领域。

什么又是 Miniconda?

Miniconda 是 python 的一个发行版,就像 Arch 之于 Linux 一样,它开箱带有自己的一系列配套软件(通常都是一些适用科学计算的 package),一个包管理器(Conda)。Miniconda 是 Anaconda 的青春版,是最小化安装的 Anaconda, 而 Anaconda 则比较臃肿。

安装 Miniconda3

> yay -Syu miniconda3

启用 conda

添加 conda shell 脚本到 rc(我这里conda.bashrc会自动在每次用户登录时加载):

echo "[ -f /opt/miniconda3/etc/profile.d/conda.sh ] && source /opt/miniconda3/etc/profile.d/conda.sh" >> ~/.bashrc.d/conda.bashrc

添加 & 激活 conda 虚拟环境

> conda create -n learn
                  ^虚拟环境名称
> conda activate learn

此时你的 python 套件全部换成该环境下的binary,你可以试试 which python && which pip && which conda

解决 Cryptography OpenSSL 报错

  1. 添加环境变量:
> export CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1
  1. 安装 cryptography 库:
> conda install cryptography

<aside> ❓ **为什么上面的方法没用?**因为之前使用 yayminiconda3 安装成 systemwide,且如果使用 激活的是 base 环境,conda 会将 pkg 安装到系统级目录,会出现权限问题,且环境变量也应当使用系统环境变量。如果硬要使用 base 环境, install 指令应当添加 sudo 使用。环境变量也应当添加为 systemwide,或者使用 sudo -E 使用用户变量。

</aside>

<aside> 🛠 依然报错(site-package 字眼)—— 暴力重装:干净删除miniconda所有包,然后重装:

> sudo rm /opt/miniconda3/ -rf
> yay -Syu miniconda3

</aside>

换源