Switch setup.sh from pip --user to venv for PEP 668 compatibility

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
kroutony 2026-03-15 13:37:46 +00:00
parent 28c66a5e8d
commit a9981cb881

View File

@ -30,10 +30,16 @@ fi
echo " Python $PY_VER"
# --------------------------------------------------
# 2. 安裝 pip 套件
# 2. 建立 venv 並安裝 pip 套件
# --------------------------------------------------
echo "[2/6] Installing Python packages..."
$PYTHON -m pip install --user -r "$PROJECT_DIR/requirements.txt" -q
echo "[2/6] Setting up venv and installing packages..."
VENV_DIR="$PROJECT_DIR/.venv"
if [ ! -d "$VENV_DIR" ]; then
$PYTHON -m venv "$VENV_DIR"
echo " created .venv"
fi
VENV_PYTHON="$VENV_DIR/bin/python"
"$VENV_PYTHON" -m pip install -r "$PROJECT_DIR/requirements.txt" -q
echo " packages installed ✓"
# --------------------------------------------------
@ -116,11 +122,11 @@ echo " data files ✓"
# --------------------------------------------------
echo "[6/6] Setting up crontab..."
CRON_MAIN="*/5 * * * * sleep 30 && cd $PROJECT_DIR && /usr/bin/python3 main.py >> cron.log 2>&1"
CRON_SYNC="2,32 * * * * cd $PROJECT_DIR && /usr/bin/python3 sync_cost_basis.py >> sync_cost_basis_cron.log 2>&1"
CRON_CHECK="7 * * * * cd $PROJECT_DIR && /usr/bin/python3 check_errors.py 2>&1"
CRON_ENV="PATH=$HOME/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
CRON_PYPATH="PYTHONPATH=$HOME/.local/lib/python3.12/site-packages"
VENV_PYTHON="$PROJECT_DIR/.venv/bin/python"
CRON_MAIN="*/5 * * * * sleep 30 && cd $PROJECT_DIR && $VENV_PYTHON main.py >> cron.log 2>&1"
CRON_SYNC="2,32 * * * * cd $PROJECT_DIR && $VENV_PYTHON sync_cost_basis.py >> sync_cost_basis_cron.log 2>&1"
CRON_CHECK="7 * * * * cd $PROJECT_DIR && $VENV_PYTHON check_errors.py 2>&1"
CRON_ENV="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# 檢查是否已有此專案的 crontab
if crontab -l 2>/dev/null | grep -q "bifitnex-trading"; then
@ -133,7 +139,6 @@ else
# --- bifitnex-trading-2 ---
$CRON_ENV
$CRON_PYPATH
$CRON_MAIN
$CRON_SYNC