1. 环境搭建与安装

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 项目,写个简单的策略跑回测,看看框架到底怎么玩。