安装screenshot

143 阅读1分钟

项目分为前后端:python+react 容器安装比较简单,本地部署python端时遇到些问题,特此记录一下

按文档安装会报错:

The current project could not be installed: No file/folder found for package backend
If you do not want to install the current project use --no-root

解决办法是

cd backend
mkdir backend  
mv *.py backend/
poetry install
poetry shell
cd backend  
poetry run uvicorn main:app --reload --port 7000

安装poetry

先确认pip是基于python 3.12以上的,再安装poetry

pip3 --version  
pip3 install poetry

常见报错

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

原因是.env文件的格式不对,BOM头改utf-8。或者从新生成.env文件

项目启动脚本

#!/bin/bash

# 定义要监控的端口
PORT=7000

# 定义 poetry 的绝对路径(根据实际情况修改)**
POETRY_PATH="/opt/python3/bin/poetry"

# 定义启动服务的命令
START_COMMAND="nohup $POETRY_PATH run uvicorn main:app --reload --port $PORT"

# 定义项目根目录(替换为你的项目实际路径)**
PROJECT_DIR="/opt/screenshotcode/backend"

# 使用 ss 命令检查端口是否被监听
if ss -lntup | grep -q ":$PORT "; then
    echo "端口 $PORT 已经在监听"
else
    echo "端口 $PORT 未监听,正在启动服务..."
    
    # 切换到项目根目录
    cd "$PROJECT_DIR"
    POETRY_PATH shell
    cd backend
    
    # 执行启动服务的命令
    $START_COMMAND & 
fi