fix: deploy 安装 pkg-config 以编译 vnpy_ctp

Meson 需 pkg-config 查找 python3-dev;deploy.sh 保留已有 venv 并验证 vnpy_ctp 导入。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-24 10:56:39 +08:00
parent 62cd868f79
commit 8726760b12
2 changed files with 15 additions and 13 deletions
+9 -7
View File
@@ -26,10 +26,9 @@ need_install python3 python3
need_install python3-venv python3-venv need_install python3-venv python3-venv
need_install git git need_install git git
# vnpy_ctp 在 Linux 上可能需要编译 # vnpy_ctp 在 Linux 上需本地编译(Meson + pkg-config 查找 python3-dev
if ! dpkg -s build-essential &>/dev/null; then echo "==> 安装 vnpy_ctp 编译依赖..."
apt-get install -y build-essential python3-dev apt-get install -y build-essential python3-dev pkg-config
fi
if ! command -v pm2 &>/dev/null; then if ! command -v pm2 &>/dev/null; then
echo "==> 安装 PM2..." echo "==> 安装 PM2..."
@@ -56,11 +55,14 @@ else
cd "$APP_DIR" cd "$APP_DIR"
fi fi
echo "==> 创建 Python 虚拟环境..." echo "==> Python 虚拟环境与依赖..."
python3 -m venv "$APP_DIR/venv" if [ ! -d "$APP_DIR/venv" ]; then
python3 -m venv "$APP_DIR/venv"
fi
source "$APP_DIR/venv/bin/activate" source "$APP_DIR/venv/bin/activate"
pip install --upgrade pip -q 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 if [ ! -f "$APP_DIR/.env" ]; then
echo "==> 生成 .env(请编辑 ADMIN_PASSWORD 后重启)..." echo "==> 生成 .env(请编辑 ADMIN_PASSWORD 后重启)..."
+6 -6
View File
@@ -22,7 +22,7 @@
- **系统**Ubuntu 20.04+(推荐) - **系统**Ubuntu 20.04+(推荐)
- **Python**3.10+vnpy_ctp 要求 ≥3.10 - **Python**3.10+vnpy_ctp 要求 ≥3.10
- **Node.js + PM2**:进程守护与开机自启 - **Node.js + PM2**:进程守护与开机自启
- **编译工具**(安装 vnpy_ctp 时需要):`build-essential``python3-dev` - **编译工具**(安装 vnpy_ctp 时需要):`build-essential``python3-dev``pkg-config`
- **网络** - **网络**
- `hq.sinajs.cn`(新浪行情) - `hq.sinajs.cn`(新浪行情)
- 企业微信 API(若启用推送) - 企业微信 API(若启用推送)
@@ -62,11 +62,11 @@ bash deploy.sh
```bash ```bash
apt update 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 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. 克隆代码 ### 2. 克隆代码
@@ -173,7 +173,7 @@ pm2 restart qihuo
`vnpy_ctp` 安装失败(常见于缺少编译环境): `vnpy_ctp` 安装失败(常见于缺少编译环境):
```bash ```bash
apt install -y build-essential python3-dev apt install -y build-essential python3-dev pkg-config
source venv/bin/activate source venv/bin/activate
pip install --no-cache-dir vnpy vnpy_ctp pip install --no-cache-dir vnpy vnpy_ctp
pm2 restart qihuo pm2 restart qihuo
@@ -326,7 +326,7 @@ ss -tlnp | grep 6600
```bash ```bash
cd /opt/qihuo cd /opt/qihuo
source venv/bin/activate 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 pip install -r requirements.txt
python -c "from vnpy_ctp import CtpGateway; print('OK')" python -c "from vnpy_ctp import CtpGateway; print('OK')"
pm2 restart qihuo 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 是否维护、是否在允许连接时段 | | CTP 连接超时 | 检查前置 IP、端口、SimNow 是否维护、是否在允许连接时段 |
| 已连接但下单拒单 | 检查合约代码、价格精度、是否有足够保证金 | | 已连接但下单拒单 | 检查合约代码、价格精度、是否有足够保证金 |