环境搭建:Python 3.10+ 环境安装与虚拟环境配置(venv/pyenv)
做量化交易,说白了就是跟数据打交道。而Python,就是我们手里的那把刀。
我个人习惯,先把刀磨利了再干活。环境搭建这事,看着简单,但坑不少。我记得刚入行那会儿,直接在系统Python里装包,结果搞崩了系统依赖,重装了三次系统……嗯,从那以后,我再也不敢乱来了。
为什么非得用 Python 3.10+?
你可能要问:Python 3.6 不行吗?3.8 不行吗?
我直接说结论:外汇量化策略里,很多新库已经放弃对低版本的支持了。比如 pandas 2.0、numpy 1.25,还有我们后面要用的 backtrader2、ccxt 的最新版,都要求 3.9 以上。
3.10 有个我很喜欢的东西——结构模式匹配(match-case)。写策略信号处理时,代码能少一半。不信你试试。
第一步:安装 Python 3.10+
Windows 用户
去官网下载安装包,这个不用我教了吧?但有个细节要注意:
- 安装时勾选「Add Python to PATH」——我见过太多人忘了这步,后面命令行里敲 python 没反应,急得跳脚。
- 安装路径不要带中文和空格。比如
C:\Python310就挺好。
macOS 用户
macOS 自带的 Python 是 2.7 或者 3.8,别用。我建议用 Homebrew 装:
brew install python@3.10
装完记得检查一下:
python3 --version
# 输出:Python 3.10.x
Linux 用户
Ubuntu/Debian 用户看这里:
sudo apt update
sudo apt install python3.10 python3.10-venv python3.10-dev
CentOS/RHEL 用户可能需要编译安装,或者用 deadsnakes 源。我个人建议直接用 pyenv,后面会讲。
python --version 如果还是旧版本,试试 python3 --version。Windows 用户可能需要重启终端。
第二步:pyenv——Python 版本管理神器
做量化交易,你手上可能同时维护好几个策略。有的策略依赖 Python 3.8,有的需要 3.10,还有的必须用 3.11 的新特性。怎么办?
这时候 pyenv 就派上用场了。它让你能在同一台机器上安装多个 Python 版本,随时切换。
安装 pyenv
macOS/Linux:
curl https://pyenv.run | bash
装完后,记得把下面几行加到 ~/.bashrc 或 ~/.zshrc 里:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Windows: 用 pyenv-win,在 PowerShell 里运行:
Invoke-WebRequest -Uri https://pyenv.run -OutFile pyenv-installer.ps1
.\pyenv-installer.ps1
常用命令
| 命令 | 作用 |
|---|---|
pyenv install --list |
查看可安装的 Python 版本 |
pyenv install 3.10.12 |
安装指定版本 |
pyenv versions |
查看已安装的版本 |
pyenv global 3.10.12 |
设置全局默认版本 |
pyenv local 3.8.18 |
在当前目录设置局部版本 |
xcode-select --install,或者 brew install zlib。Linux 上则要装 libssl-dev、libbz2-dev 等。
第三步:venv——项目隔离的基石
pyenv 管的是 Python 版本,而 venv 管的是项目依赖。
你想想看,策略A需要 pandas 1.5,策略B需要 pandas 2.0。如果装在一起,早晚出问题。venv 就是给每个项目建一个独立的小房间,互不干扰。
创建虚拟环境
# 先切换到项目目录
cd my_forex_strategy
# 创建虚拟环境(python3.10 是当前使用的版本)
python3.10 -m venv venv
# 激活虚拟环境
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate
激活后,终端前面会出现 (venv) 字样。这时候你安装的所有包,都只在这个项目里生效。
验证是否成功
which python
# 应该显示项目目录下的 venv/bin/python
pip list
# 应该只有最基本的几个包
requirements.txt 文件。装完包后,用 pip freeze > requirements.txt 把依赖锁死。这样换机器部署时,直接 pip install -r requirements.txt 就完事了。
第四步:pyenv + venv 组合拳
这两个工具配合起来用,效果最好。我一般这么操作:
# 1. 先指定项目用的 Python 版本
pyenv local 3.10.12
# 2. 创建虚拟环境(会自动用 3.10.12)
python -m venv venv
# 3. 激活
source venv/bin/activate
# 4. 安装量化常用库
pip install pandas numpy matplotlib
pip install backtrader ccxt ta-lib
pip install jupyter notebook
这样,你的项目就同时绑定了 Python 版本和依赖包。换台电脑,只要把项目文件夹拷过去,重复上面步骤就行。
知识体系总览
下面这张图,概括了本章的核心逻辑:
避坑指南
最后,分享几个我实战中遇到的坑:
- 路径问题:Windows 上如果 Python 安装路径有空格,venv 激活脚本可能报错。解决办法:重装到无空格的路径。
- pip 版本过旧:新装的 Python,pip 版本可能比较老。建议先升级:
pip install --upgrade pip。 - TA-Lib 安装:这个库在 Windows 上比较麻烦。我建议直接下载预编译的 whl 文件安装,别自己编译,太折腾。
- 虚拟环境嵌套:不要在已经激活的 venv 里再执行
python -m venv,会乱套。
(venv) 标识。没有的话,所有包都会装到全局,到时候哭都来不及。
好了,环境搭好了,后面就可以安心写策略了。记住一句话:环境搞得好,下班走得早。