量化交易选择哪个 Python 发行版

量化课堂 量化课堂
2023年9月19日 21:28

Python 是量化回测和实盘中最常用的语言工具,要使用 Python,首先要选择一个 Python 发行版并安装。

在本文,我整理了 系统自带官网HomebrewPyenvAnacondaMinicondaMiniforgeMambaforge 这些 Python 发行版的特点,并给出我现在使用的发行版。

1. 操作系统自带 Python:不选

优点:方便

在 macOS 和 Linux 上使用自带 Python 的最大优点就是方便,打开 Pycharm 就能开始开发,打开 Terminal 敲上 python 就能用。

缺点:与系统耦合过高

它的最大缺点也正是由于其集成的便利带来的:Python 的应用环境和操作系统耦合太紧密。

这两个系统自带 Python 的原因,是操作系统的部分应用也是使用 Python 开发的,也需要 Python 运行环境。

使用自带 Python 安装库的时候,经常遇到权限问题,因为默认 site-packages 的目录经常是 root 外用户不可写的。当然这个权限问题,可以配置将库安装到 user 目录,或通过 venv 新建环境解决,但毕竟多了一些步骤,在环境上也不够纯净与隔离。

缺点:无法控制版本

经常做回测开发的朋友知道,有些 Python 软件包的版本支持的 Python 的版本不同,使用系统自带 Python 可能无法安装和运行。比如某软件包只支持 Python 3.10 以下的版本,而某 Linux 自带了 Python 3.11 并且无法降级至 3.10,会无法运行此软件包。

2. Homebrew 安装 Python:不选

macOS 下的 Homebrew 是安装命令行工具的利器,它也可以安装 Python。

但它只能安装一个 Python,如果只使用一个 Python 版本的话,可以选择这种方式。

长期来看,总会遇到安装多 Python 版本场景,所以我不会选择这种安装方式。

3. 官网 Python:备选

官网下载的 Python 十分纯净,运行安装包安装也方便。

如果要同时使用 Python 3.10 和 Python 3.11,要分别下载安装包,并安装到不同目录。多个 Python 安装后环境变量互相覆盖,在 shell 内只能有一个 Python 生效,切换版本不太方便。

4. Pyenv:备选

从名字可以看出来 Pyenv 会支持多 environments。

Pyenv 会在 home 目录下生成一个 .pyenv 目录,所有 Python 版本都安装在这个目录下,十分纯净。

如果不使用 conda install 安装包的话,Pyenv 也是一个选择。

5. Anaconda:备选

Anaconda 是经常推荐给数据分析新手的 Python 发行版。

它带有界面安装器,继承了常用的数据分析 Python 软件包,所以安装包的体积也不小,macOS 上的达到了 600M 以上。

安装完后,有界面管理器,可以在界面中操作 Python 软件包的安装、升级和卸载。

Anaconda 也可以安装创建维护多个环境,每个环境使用不同的 Python 版本。

Anaconda 还提供了 conda 命令,功能类似于 pip,可安装托管于 Anaconda 的软件包,作为 pypi 软件源的补充。

因为附带了大量我不需要的软件包,我不会选择 Anaconda,喜欢界面环境和简单使用的朋友可以选择。

6. Miniconda:不选

Miniconda 是 Anaconda 的迷你版,没有额外附带软件包,也只有命令行操作方式。

Miniconda 拥有 Anaconda 核心功能和组建,比如多环境支持和 conda 命令。

它需要下载安装包并使用命令行安装,可能对程序新手不太友好,不过可以搜索相关教程解决。

我不选择 Miniconda 的原因,是它默认的 conda 软件包的 channel 源为 anaconda,下面有另外的选择。

7. Miniforge 或 Mambaforge:选择 ✅

Miniforge 和 Miniconda 功能一致,不同之处,在于它默认软件包的 channel 源是 conda-forge。

官方 anaconda 源商用情况下有许可证风险,网上能搜到它的许可证和相关信息。conda-forge 是社区维护的软件包源,与官方 anaconda 源相比软件包新且更新速度快,是当年率先支持苹果 m1 芯片的源,赢得了不少用户。conda-forge 源我已经使用了 2 年时间。

Mambaforge 是我目前使用的 Python 发行版,它与 Miniforge 相比,多带了 mamba 命令。这个命令功能和用法与 conda 命令相同,不同之处在于它提升了包安装的速度,我在使用时候感觉提升很明显。

总结

方法 安装方便 纯净 目录隔离 多版本 conda 包
自带
官网
Homebrew
Pyenv
Anaconda
Miniconda
Mambaforge

总结下来,Mambaforge 在纯净、目录隔离、多版本、额外 conda 包上有优势,是我目前的选择。

评论
暂无评论