From a9981cb881833987142321d474743b87a6e010dc Mon Sep 17 00:00:00 2001 From: kroutony Date: Sun, 15 Mar 2026 13:37:46 +0000 Subject: [PATCH] Switch setup.sh from pip --user to venv for PEP 668 compatibility Co-Authored-By: Claude Opus 4.6 (1M context) --- setup.sh | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/setup.sh b/setup.sh index 16063a4..dfc8bad 100755 --- a/setup.sh +++ b/setup.sh @@ -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