为什么是Anaconda
痛点1:非Python依赖 → Conda跨语言支持
量化交易是对数据进行分析。在数据分析的过程中,我们需要用到各种科学计算库,而这些库不一定全是Python书写,如TA-Lib是基于C库编译。
在和各交易所对接时,对方提供的库也可能是基于C++等书写。即程序存在非Python依赖,这就需要包管理器支持安装跨语言的包。
解决方案
Anaconda基于conda扩展,而conda支持跨语言依赖包安装,完美解决了非Python依赖的问题。
痛点2:版本冲突 → Conda精确版本锁定
量化交易涉及的依赖比较多,即使在开发时使用最新版本的依赖,在别的同学接手开发或实盘部署时重新安装依赖,都可能出现版本不一致的情况,新版本的依赖可能会出现不向下兼容的情况,从而导致系统出错。
如:NumPy>=1.20时,对数据类型检查更严格 ,旧版本策略中隐式类型 转换可能在新版报错。datetime的处理,可能报:
ValueError: Timezone-aware datetime cannot be converted to datetime64...
解决方案
anaconda里的每个依赖包都是锁定版本的,任意时间安装都是使用相同的版本。版本的升级由Anaconda统一管理,一升级就全部升级。
痛点3:环境一致性 → 环境导出/导入
量化交易的研究环境和实盘环境需要保持一致,这不仅需要保证运行环境一致,还需要依赖及版本的一致性。
假如开发时有ta-lib库,而服务器没有,则系统就会崩溃。环境不一致是造成策略失效甚至资金损失的常见根源。
解决方案
Anaconda 支持环境配置的导入和导出,通过配置文件保证环境的一致性。
Anaconda的安装
下载安装
去官网下载 https://www.anaconda.com/download#Downloads
支持Windows、Mac及Linux。安装过程与普通的软件安装差不多。如果需要修改默认路径,选择你要安装的路径即可。
安装后会有个快捷图标,则表示安装成功。
环境变量设置
windows下,默认没有配置conda的环境变量,所以在命令行中,直接输入conda命令会报错。解决方式有两种:
通过环境打开命令行
在相应的环境中打开命令行。
打开后会有有相应的环境名称标记:
配置Path变量
win+i打开设置->系统->关于->高级系统–>环境变量–>系统变量–>打开path
添加以下四个路径:
C:ProgramDatanaconda3C:ProgramDatanaconda3ScriptsC:ProgramDatanaconda3LibraryinC:ProgramDatanaconda3Librarymingw-w64in(可选)
在命令行中验证配置,执行:
conda --version
如果出现相应的版本信息,则表示配置成功
镜像加速
可以修改到清华大学的镜像源,加快依赖包的安装速度
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/condaconfig --set channel_priority strict
其中channel_priority是用来设置优化级
可以使用conda info查看相应的信息:
Anaconda的使用
环境管理器
界面化环境管理
Create按钮:创建新的环境
Clone按钮:复制当前环境来创建新的环境
Import按钮:导入环境配置来创建新环境
Backup按钮:导出当前环境的配置文件,可以在Import时使用。
Remmove按钮:删除当前环境
命令行环境管理
创建环境
conda create -n py27 python=2.7.18 Numpy
-n 参数: 环境名称
其他参数:相应的python版本及依赖包
创建后,会在anacondas安装目录下的envs文件夹下创建相应的环境文件夹
查看当前环境信息
conda info -e
列出所有的环境及当前所用的环境:
作用同 conda env list
切换环境
conda activate py313
退出当前环境,并回到上一个环境
conda deactivate py313
删除环境
conda remove --name testenv --all
--name: 要删除的环境名称
导出环境配置
conda env export > enviroment.yml
导入环境配置创建:
conda env create -f enviroment.yml
包管理器
基于conda管理包,包括安装、卸载和更新。
在操作前,需要先确定环境是否为目标环境。
安装依赖:
conda install xx
安装指定版本的依赖:
conda install numpy=1.24
更新conda本身:
conda update conda
更新anaconda应用
conda update anaconda
更新python
conda update python
列出当前环境的所有包
conda list
删除当前环境的指定包:
conda remove 包名
删除指定环境中的包
conda remove --name 环境名 包名
强制删除(避免依赖检查)
conda remove 包名 --force
批量删除多个包
conda remove 包1 包2 包3
清理无用缓存(删除包后,可清理残留文件,释放空间)
conda clean --all
PyCharm关联Anaconda环境
创建Anaconda环境
一般我们使用Anaconda自带的base环境即可。如果需要,可以克隆或根据项目配置新建。
创建Python项目并配置解释器
打开PyCharm,创建新的项目或打开已有的项目,并配置项目的解释器:
选择相应的环境即可。
外部库依赖查看
配置成功后,可以在外部库中找到看到对应环境的依赖库配置:
依赖库使用
可以在项目文件中,直接使用环境里的库,如创建run.py,并使用numpy库
import numpy as np
array = np.random.rand(10)mean = np.mean(array)
print(mean)
python文件运行
在命令行里,执行:
python run.py
或者直接点击右上角的绿色三角按钮即可正常运行,在下面可以看到运行后的输出
其他
conda与pip的区别
pip是官方认证的安装包,只有安装纯python的依赖,它的源来自于:PyPI(Python Package Index)
而conda是
由 Anaconda 公司开发,是一个跨语言的包和环境管理器。
不仅管理 Python 包,还能处理非 Python 的依赖(如 C/C++ 库、R 包等)。
更擅长解决科学计算领域的复杂依赖问题(如 numpy 与 CUDA 的兼容性)
从 Anaconda 仓库 或第三方渠道(如 conda-forge)安装包。
pip本身不直接管理环境,需依赖 venv 或 virtualenv 创建隔离环境。
python -m venv myenv # 创建虚拟环境source myenv/bin/activate # 激活环境pip install package # 在环境中安装包
conda内置环境管理功能,可创建隔离环境并管理不同版本的 Python 和包。
conda create -n myenv python=3.9 # 创建环境conda activate myenv # 激活环境conda install numpy # 安装包.
Anaconda是量化开发的基础设施,它很好地解决了量化交易开发中的基础依赖、版本冲突及开发环境等问题,使我们可以更专注在策略的研究和开发上,极大地节省时间,提高开发效率.