2、环境搭建:Python虚拟环境配置、依赖库安装与API密钥管理
说实话,很多做量化交易的朋友,一开始就栽在环境搭建上。
我见过有人直接在系统Python里装了一堆包,结果版本冲突,项目跑不起来。还有人把API密钥硬编码在代码里,一不小心传到GitHub上,几万块钱的账户直接被别人接管。嗯,这些坑我都踩过。
所以这一章,咱们把基础打牢。你想想看,地基不稳,楼盖得再高也是白搭。
2.1 为什么必须用虚拟环境?
Python的包管理,说白了就是一团乱麻。不同项目依赖不同版本的库,比如项目A要pandas 1.3,项目B要pandas 2.0。如果你全装在一起,早晚会出问题。
我个人习惯,每个交易策略项目都单独建一个虚拟环境。这样干净、隔离、好管理。
核心原则:一个项目,一个环境,互不干扰。
2.2 创建Python虚拟环境
我用的是Python自带的venv模块。轻量、简单、不需要额外安装。
打开终端,进入你的项目目录,然后执行:
# 创建虚拟环境,名字叫 venv
python -m venv venv
这条命令会在当前目录下生成一个venv文件夹。里面包含了独立的Python解释器和pip。
激活环境也很简单:
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activate
激活后,终端前面会出现(venv)字样。这时候你安装的所有包,都只在这个环境里生效。
小技巧:我习惯在项目根目录下建一个.gitignore文件,把venv/加进去。这样虚拟环境不会被提交到Git仓库,避免臃肿。
2.3 安装核心依赖库
做实盘交易,有三个库是绕不开的:
| 库名 | 用途 | 安装命令 |
|---|---|---|
| requests | 发送HTTP请求,调用REST API | pip install requests |
| websocket | 建立长连接,接收实时行情 | pip install websocket-client |
| pandas | 数据处理、K线计算、回测分析 | pip install pandas |
激活虚拟环境后,直接执行:
pip install requests websocket-client pandas
等安装完成,可以用pip list查看已安装的包。确保版本没问题。
注意:我曾经遇到过websocket-client和websocket两个包名混淆的情况。记住,我们用的是websocket-client,不是websocket。后者已经很久不维护了。
2.4 管理依赖版本
项目做大了,你可能会换电脑、或者团队协作。这时候需要把依赖环境「冻结」下来。
我习惯用requirements.txt来记录:
# 导出当前环境的所有包及版本
pip freeze > requirements.txt
别人拿到你的项目后,只需要:
pip install -r requirements.txt
就能复现一模一样的依赖环境。这招在团队协作中特别实用。
2.5 API密钥管理——别犯低级错误
这是我最想强调的一点。
很多新手直接把API Key和Secret写在代码里:
# 错误示范!千万别这么干
api_key = "abc123"
api_secret = "xyz789"
然后代码一提交到GitHub,全世界都看到了。我有个朋友,就因为这事,账户里的币被人用API转走了。教训深刻。
正确的做法是用环境变量或配置文件来管理。
方法一:使用环境变量
在终端里设置:
# Windows (CMD)
set API_KEY=abc123
set API_SECRET=xyz789
# macOS / Linux
export API_KEY=abc123
export API_SECRET=xyz789
然后在Python代码中读取:
import os
api_key = os.getenv("API_KEY")
api_secret = os.getenv("API_SECRET")
这样密钥就不会出现在代码文件里了。
方法二:使用配置文件(推荐)
我更喜欢用.env文件。创建一个.env文件:
API_KEY=abc123
API_SECRET=xyz789
然后安装python-dotenv库:
pip install python-dotenv
在代码中加载:
from dotenv import load_dotenv
import os
load_dotenv() # 加载 .env 文件
api_key = os.getenv("API_KEY")
api_secret = os.getenv("API_SECRET")
关键:一定要把.env文件加到.gitignore里。这样它不会被提交到Git仓库。别人拿到你的代码,看到的只是一个空的.env.example模板。
2.6 本章知识体系总览
下面这张图,帮你把整个环境搭建的逻辑串起来:
2.7 验证环境是否就绪
装完别急着走。写个简单的测试脚本,确认一切正常:
import requests
import websocket
import pandas as pd
print("requests版本:", requests.__version__)
print("pandas版本:", pd.__version__)
print("环境搭建成功!")
如果能顺利打印出版本号,恭喜你,环境已经搭好了。
我的习惯:每次开始新项目,我都会先跑一遍这个测试脚本。花30秒确认环境,能省下后面几小时的排错时间。
环境搭建这一步,看似简单,但真的别马虎。我见过太多人因为环境问题浪费大量时间。打好基础,后面的路才走得稳。
公众号:蓝海资料掘金营,微信deep3321