项目分为前后端: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