From 8726760b12a007aed201b8f2197488d18b1486e6 Mon Sep 17 00:00:00 2001 From: dekun Date: Wed, 24 Jun 2026 10:56:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20deploy=20=E5=AE=89=E8=A3=85=20pkg-config?= =?UTF-8?q?=20=E4=BB=A5=E7=BC=96=E8=AF=91=20vnpy=5Fctp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Meson 需 pkg-config 查找 python3-dev;deploy.sh 保留已有 venv 并验证 vnpy_ctp 导入。 Co-authored-by: Cursor --- deploy.sh | 16 +++++++++------- docs/DEPLOY.md | 12 ++++++------ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/deploy.sh b/deploy.sh index 7c058d9..2d9cf6a 100644 --- a/deploy.sh +++ b/deploy.sh @@ -26,10 +26,9 @@ need_install python3 python3 need_install python3-venv python3-venv need_install git git -# vnpy_ctp 在 Linux 上可能需要编译 -if ! dpkg -s build-essential &>/dev/null; then - apt-get install -y build-essential python3-dev -fi +# vnpy_ctp 在 Linux 上需本地编译(Meson + pkg-config 查找 python3-dev) +echo "==> 安装 vnpy_ctp 编译依赖..." +apt-get install -y build-essential python3-dev pkg-config if ! command -v pm2 &>/dev/null; then echo "==> 安装 PM2..." @@ -56,11 +55,14 @@ else cd "$APP_DIR" fi -echo "==> 创建 Python 虚拟环境..." -python3 -m venv "$APP_DIR/venv" +echo "==> Python 虚拟环境与依赖..." +if [ ! -d "$APP_DIR/venv" ]; then + python3 -m venv "$APP_DIR/venv" +fi source "$APP_DIR/venv/bin/activate" pip install --upgrade pip -q -pip install -r "$APP_DIR/requirements.txt" -q +pip install -r "$APP_DIR/requirements.txt" +python -c "from vnpy_ctp import CtpGateway; print('vnpy_ctp OK')" if [ ! -f "$APP_DIR/.env" ]; then echo "==> 生成 .env(请编辑 ADMIN_PASSWORD 后重启)..." diff --git a/docs/DEPLOY.md b/docs/DEPLOY.md index a58b55d..1db4c1e 100644 --- a/docs/DEPLOY.md +++ b/docs/DEPLOY.md @@ -22,7 +22,7 @@ - **系统**:Ubuntu 20.04+(推荐) - **Python**:3.10+(vnpy_ctp 要求 ≥3.10) - **Node.js + PM2**:进程守护与开机自启 -- **编译工具**(安装 vnpy_ctp 时需要):`build-essential`、`python3-dev` +- **编译工具**(安装 vnpy_ctp 时需要):`build-essential`、`python3-dev`、`pkg-config` - **网络**: - `hq.sinajs.cn`(新浪行情) - 企业微信 API(若启用推送) @@ -62,11 +62,11 @@ bash deploy.sh ```bash apt update -apt install -y python3 python3-venv python3-pip python3-dev git nodejs npm build-essential +apt install -y python3 python3-venv python3-pip python3-dev pkg-config git nodejs npm build-essential npm install -g pm2 ``` -`build-essential` 与 `python3-dev` 用于编译安装 **vnpy_ctp**(CTP 网关)。若 `pip install vnpy_ctp` 报编译错误,请先确认上述包已安装。 +`build-essential`、`python3-dev`、`pkg-config` 用于编译安装 **vnpy_ctp**(CTP 网关)。Meson 通过 pkg-config 查找 Python 头文件;缺 `pkg-config` 时会报 `Python dependency not found`。 ### 2. 克隆代码 @@ -173,7 +173,7 @@ pm2 restart qihuo 若 `vnpy_ctp` 安装失败(常见于缺少编译环境): ```bash -apt install -y build-essential python3-dev +apt install -y build-essential python3-dev pkg-config source venv/bin/activate pip install --no-cache-dir vnpy vnpy_ctp pm2 restart qihuo @@ -326,7 +326,7 @@ ss -tlnp | grep 6600 ```bash cd /opt/qihuo source venv/bin/activate -apt install -y build-essential python3-dev # 首次需要 +apt install -y build-essential python3-dev pkg-config # 首次需要 pip install -r requirements.txt python -c "from vnpy_ctp import CtpGateway; print('OK')" pm2 restart qihuo @@ -344,7 +344,7 @@ pm2 restart qihuo | 日志/现象 | 处理 | |-----------|------| -| `pip install vnpy_ctp` 编译失败 | 安装 `build-essential python3-dev` 后重试 | +| `pip install vnpy_ctp` 编译失败 / `Python dependency not found` | 安装 `build-essential python3-dev pkg-config` 后重试 | | CTP 连接超时 | 检查前置 IP、端口、SimNow 是否维护、是否在允许连接时段 | | 已连接但下单拒单 | 检查合约代码、价格精度、是否有足够保证金 |