1.环境搭建与安装
Jesse 是一个用 Python 编写的算法交易框架,主打自托管和隐私优先。想在本地跑起来,得先把环境搭好。这一章把几种主流部署方式都过一遍,从最简单的 Docker 到各操作系统的原生安装,最后说说配置要点。
Docker 容器部署
Docker 是最省心的方案,所有依赖都打包好了,一行命令就能跑起来。
安装 Docker
macOS 和 Windows 直接去 Docker 官网下载 Docker Desktop,图形界面一路下一步就行。Ubuntu 服务器可以用官方脚本一键安装:
curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh
装完记得把当前用户加到 docker 组,避免每次都要 sudo:
sudo usermod -aG docker $USER
注销重新登录生效。
启动容器
Jesse 项目模板里已经包含了完整的 Docker 配置。创建项目后,进入 docker 目录启动:
cd docker
docker compose up -d
第一次运行要下载镜像,可能需要几分钟。之后启动就快了,十几秒搞定。看到容器都跑起来后,浏览器打开 localhost:9000 就能访问仪表盘。
停止容器
如果启动时加了 -d 参数(后台运行),用 stop 命令停止:
docker compose stop
要是没加 -d,直接 Ctrl+C 就行。
修改端口
默认端口是 9000,想改的话编辑项目根目录的 .env 文件,把 APP_PORT 改成想要的值。改完重启容器生效。
共享数据库
多个 Jesse 实例可以共用同一个数据库。在新实例的 docker-compose.yml 里,把 postgres-data 卷标记为 external:
volumes:
postgres-data:
external: true
这样 Docker 就不会创建新卷,而是使用已存在的外部卷。
Ubuntu 系统安装
不想用 Docker 的话,原生安装也不复杂。Ubuntu 22.04 LTS 是最推荐的版本。
全新安装(推荐服务器环境)
Jesse 官方提供了一个一键安装脚本,适合刚装好的纯净系统:
source <(curl -fsSL https://raw.githubusercontent.com/jesse-ai/stack-installer/master/ubuntu-22.04.sh)
这个脚本会装好 Python 3.12、PostgreSQL、Redis 和所有系统依赖,省得一个个手动折腾。
现有系统安装(适合桌面用户)
如果系统已经装了一堆东西,不想用脚本,可以手动安装。推荐用 Miniconda 管理 Python 环境,避免污染系统 Python。
安装 Miniconda
去 Miniconda 官网下载最新安装包,或者直接用 wget:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
安装过程中会提示是否初始化 conda,一定要输入 yes。装完关闭终端重新打开,或者运行:
source ~/.bashrc
创建 Jesse 专用环境:
conda create --name jesse python=3.12
conda activate jesse
每次新开终端都要执行 conda activate jesse 激活环境。
安装 PostgreSQL
Ubuntu 默认仓库里的 PostgreSQL 版本够新,直接装:
sudo apt-get install postgresql postgresql-contrib
装完创建数据库和用户:
sudo -u postgres psql -c "CREATE DATABASE jesse_db;"
sudo -u postgres psql -c "CREATE USER jesse_user WITH PASSWORD 'password';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE jesse_db TO jesse_user;"
sudo -u postgres psql -c "ALTER DATABASE jesse_db OWNER TO jesse_user;"
安装 Redis
同样简单:
sudo apt-get install redis-server
装完默认就启动了,可以用 redis-cli ping 测试一下。
配置环境变量
原生安装需要修改 .env 文件里的数据库和 Redis 主机地址。默认是:
POSTGRES_HOST=postgres
REDIS_HOST=redis
都要改成 localhost:
POSTGRES_HOST=localhost
REDIS_HOST=localhost
macOS 系统安装
macOS 用户用 Homebrew 装依赖最方便,配合 Miniconda 管理 Python 环境。
安装 Homebrew
如果还没装 Homebrew,终端运行:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
装完根据提示配置 PATH。
安装 Miniconda
Apple Silicon 和 Intel 芯片的安装包不同,注意区分。
Apple Silicon (M1/M2/M3/M4):
mkdir -p ~/miniconda3
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh -o ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh
Intel 芯片:
mkdir -p ~/miniconda3
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -o ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh
初始化 conda:
source ~/miniconda3/bin/activate
conda init --all
关闭终端重开,或者 source ~/.zshrc 让配置生效。
创建 Jesse 环境
conda create --name jesse python=3.12
conda activate jesse
安装依赖包
用 Homebrew 装 Redis 和 PostgreSQL:
brew install redis postgresql@17
PostgreSQL 装完要启动服务:
brew services start postgresql@17
设置 PostgreSQL
创建数据库和用户:
psql postgres
在 psql 命令行里执行:
CREATE DATABASE jesse_db;
CREATE USER jesse_user WITH PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE jesse_db to jesse_user;
ALTER DATABASE jesse_db OWNER TO jesse_user;
\q
同样记得把 .env 文件里的 POSTGRES_HOST 和 REDIS_HOST 改成 localhost。
Windows 系统安装
Windows 安装稍微麻烦点,主要是 Redis 没有原生版本,得用 WSL。
安装 Miniconda
PowerShell 里执行:
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe -o .\miniconda.exe
start /wait "" .\miniconda.exe /S
del .\miniconda.exe
创建并激活环境:
conda create --name jesse python=3.12
conda activate jesse
每次新开 PowerShell 都要激活环境。
安装 Redis
Redis 官方不支持 Windows,但可以用 Windows Subsystem for Linux (WSL) 跑 Ubuntu 版。
先启用 WSL 功能,管理员权限 PowerShell:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
重启电脑。
然后去微软商店安装 Ubuntu 20.04,启动后设置用户名密码。
在 Ubuntu 终端里装 Redis:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install redis-server
redis-cli -v
启动 Redis 服务器:
redis-server
可以关掉终端,Redis 会在后台运行。不过每次重启系统后都要重新执行 redis-server 命令。
另一个选择是用 Memurai,这是 Redis 的 Windows 移植版,但免费版每 10 天要重启一次。
安装 PostgreSQL
去 PostgreSQL 官网下载 Windows 安装包,版本要大于 11.2。安装时记住设置的超级用户密码,pgAdmin 和 Stack Builder 可以不装。
装完要把 PostgreSQL 的 bin 目录加到 PATH。搜索"环境变量",编辑用户 PATH,添加类似 C:\Program Files\PostgreSQL\12\bin 的路径。
创建数据库和用户,CMD 里执行:
psql -U postgres
然后输入安装时设置的密码,进入 psql 后执行:
CREATE DATABASE jesse_db;
CREATE USER jesse_user WITH PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE jesse_db to jesse_user;
ALTER DATABASE jesse_db OWNER TO jesse_user;
\q
安装 Cython
Jesse 依赖 Cython,最后装一下:
pip install cython
环境变量配置
环境变量分两类:敏感信息(密码、API 密钥)和应用设置。
.env 文件
项目根目录的 .env 文件存敏感信息,默认内容:
PASSWORD=test
APP_PORT=9000
POSTGRES_HOST=localhost
POSTGRES_NAME=jesse_db
POSTGRES_PORT=5432
POSTGRES_USERNAME=jesse_user
POSTGRES_PASSWORD=password
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
修改后最好重启应用。Docker 部署的话,改完重启容器;原生部署的话,改完重启 jesse run。
应用设置
仪表盘右上角齿轮图标点开就是应用设置,包括优化参数、通知配置等。修改自动保存,没有保存按钮。
注意:修改设置不会影响正在运行的会话。如果有回测或实盘在跑,要停掉重开才能生效。但不需要重启 Jesse 本身。
小结
环境搭建是第一步,Docker 最省事,适合新手快速上手。原生安装稍微折腾,但资源占用少,适合长期运行的实盘环境。Ubuntu 服务器推荐用一键脚本,macOS 用 Homebrew,Windows 要注意 Redis 的 WSL 方案。
下一章开始创建第一个 Jesse 项目,写个简单的策略跑回测,看看框架到底怎么玩。