This commit is contained in:
linyqh 2025-07-07 02:21:09 +08:00
commit e7ad308875
3 changed files with 200 additions and 0 deletions

BIN
check_gpu_cuda_cudnn.bat Normal file

Binary file not shown.

88
start.bat Normal file
View File

@ -0,0 +1,88 @@
@echo off
:: 设置控制台代码页为UTF-8解决中文显示问题
chcp 65001 >nul
:: 关闭命令回显,使脚本运行时更整洁
:: 获取当前脚本所在目录路径并存储在变量中
set "CURRENT_DIR=%~dp0"
echo ***** 当前工作目录: %CURRENT_DIR% *****
:: ==================== FFmpeg 配置 ====================
:: 设置 FFmpeg 可执行文件的完整路径
set "FFMPEG_BINARY=%CURRENT_DIR%lib\ffmpeg\ffmpeg-7.0-essentials_build\ffmpeg.exe"
set "FFMPEG_PATH=%CURRENT_DIR%lib\ffmpeg\ffmpeg-7.0-essentials_build"
echo ***** FFmpeg 执行文件路径: %FFMPEG_BINARY% *****
:: 将 FFmpeg 目录添加到系统 PATH 环境变量,使其可以在命令行中直接调用
set "PATH=%FFMPEG_PATH%;%PATH%"
:: ==================== ImageMagick 配置 ====================
:: 设置 ImageMagick 可执行文件的完整路径(用于图像处理)
set "IMAGEMAGICK_BINARY=%CURRENT_DIR%lib\imagemagic\ImageMagick-7.1.1-29-portable-Q16-x64\magick.exe"
set "IMAGEMAGICK_PATH=%CURRENT_DIR%lib\imagemagic\ImageMagick-7.1.1-29-portable-Q16-x64"
echo ***** ImageMagick 执行文件路径: %IMAGEMAGICK_BINARY% *****
:: 将 ImageMagick 目录添加到系统 PATH 环境变量
set "PATH=%IMAGEMAGICK_PATH%;%PATH%"
:: ==================== Python 环境配置 ====================
:: 设置 Python 模块搜索路径,确保能够正确导入项目模块
set "PYTHONPATH=%CURRENT_DIR%NarratoAI;%PYTHONPATH%"
echo ***** Python模块搜索路径: %PYTHONPATH% *****
:: ==================== 项目特定环境变量配置 ====================
:: 设置项目根目录和依赖工具的路径,供应用程序内部使用
set "NARRATO_ROOT=%CURRENT_DIR%NarratoAI"
set "NARRATO_FFMPEG=%FFMPEG_BINARY%"
set "NARRATO_IMAGEMAGICK=%IMAGEMAGICK_BINARY%"
:: ==================== Streamlit 配置 ====================
:: 设置 StreamlitPython Web应用框架的配置文件路径
set "USER_HOME=%USERPROFILE%"
set "STREAMLIT_DIR=%USER_HOME%\.streamlit"
set "CREDENTIAL_FILE=%STREAMLIT_DIR%\credentials.toml"
echo ***** Streamlit 凭证文件路径: %CREDENTIAL_FILE% *****
:: 检查并创建 Streamlit 配置目录和凭证文件(如果不存在)
if not exist "%STREAMLIT_DIR%" (
echo 创建 Streamlit 配置目录...
mkdir "%STREAMLIT_DIR%"
(
echo [general]
echo email=""
) > "%CREDENTIAL_FILE%"
echo Streamlit 配置文件已创建!
)
:: ==================== 依赖检查 ====================
:: 验证必要的外部工具是否存在,确保应用可以正常运行
if not exist "%FFMPEG_BINARY%" (
echo 错误: 未找到 FFmpeg 执行文件,路径: %FFMPEG_BINARY%
echo 请确保已正确安装 FFmpeg 或检查路径配置
pause
exit /b 1
)
if not exist "%IMAGEMAGICK_BINARY%" (
echo 错误: 未找到 ImageMagick 执行文件,路径: %IMAGEMAGICK_BINARY%
echo 请确保已正确安装 ImageMagick 或检查路径配置
pause
exit /b 1
)
:: ==================== 启动应用 ====================
:: 切换到项目目录并启动应用
echo ***** 切换工作目录到: %CURRENT_DIR%NarratoAI *****
cd /d "%CURRENT_DIR%NarratoAI"
echo ***** 正在启动 NarratoAI 应用... *****
:: 使用项目自带的Python解释器启动Streamlit应用
"%CURRENT_DIR%lib\python\python.exe" -m streamlit run webui.py --browser.serverAddress="127.0.0.1" --server.enableCORS=True --server.maxUploadSize=2048 --browser.gatherUsageStats=False
:: 参数说明:
:: --browser.serverAddress="127.0.0.1" - 将服务器绑定到本地地址
:: --server.enableCORS=True - 启用跨域资源共享
:: --server.maxUploadSize=2048 - 设置最大上传文件大小为2048MB
:: --browser.gatherUsageStats=False - 禁用使用统计收集
:: 应用关闭后暂停,让用户看到最终输出
pause

112
update.bat Normal file
View File

@ -0,0 +1,112 @@
@echo off
chcp 65001 >nul
setlocal EnableDelayedExpansion
set "CURRENT_DIR=%~dp0"
echo ***** 当前目录: %CURRENT_DIR% *****
REM 清除可能影响的环境变量
set PYTHONPATH=
set PYTHONHOME=
REM 初始化代理设置为空
set "HTTP_PROXY="
set "HTTPS_PROXY="
:git_pull
echo 正在更新代码,请稍候...
REM 使用git更新代码并检查是否成功
"%CURRENT_DIR%lib\git\bin\git.exe" -C "%CURRENT_DIR%NarratoAI" pull > "%TEMP%\git_output.txt" 2>&1
set GIT_EXIT_CODE=%ERRORLEVEL%
if %GIT_EXIT_CODE% NEQ 0 (
echo [错误] 代码更新失败!错误代码: %GIT_EXIT_CODE%
type "%TEMP%\git_output.txt"
findstr /C:"error: 403" /C:"fatal: unable to access" /C:"The requested URL returned error: 403" "%TEMP%\git_output.txt" >nul
if !ERRORLEVEL! EQU 0 (
echo.
echo [提示] 检测到 GitHub 403 错误,可能是由于网络问题导致。
if not defined HTTP_PROXY (
echo.
echo 请输入代理地址(例如 http://127.0.0.1:7890或直接按回车跳过:
set /p PROXY_INPUT="> "
if not "!PROXY_INPUT!"=="" (
set "HTTP_PROXY=!PROXY_INPUT!"
set "HTTPS_PROXY=!PROXY_INPUT!"
echo.
echo [信息] 已设置代理: !PROXY_INPUT!
echo 正在使用代理重试...
goto git_pull
) else (
echo.
echo [警告] 未设置代理,建议:
echo - 手动设置系统代理
echo - 使用VPN或其他网络工具
echo - 重新运行此脚本并输入代理地址
)
) else (
echo.
echo [警告] 使用代理 !HTTP_PROXY! 仍然失败。
echo 您可以:
echo 1. 输入新的代理地址(或直接按回车使用当前代理: !HTTP_PROXY!
echo 2. 输入 "clear" 清除代理设置
set /p PROXY_INPUT="> "
if "!PROXY_INPUT!"=="clear" (
set "HTTP_PROXY="
set "HTTPS_PROXY="
echo [信息] 已清除代理设置
goto end
) else if not "!PROXY_INPUT!"=="" (
set "HTTP_PROXY=!PROXY_INPUT!"
set "HTTPS_PROXY=!PROXY_INPUT!"
echo [信息] 已更新代理为: !PROXY_INPUT!
echo 正在使用新代理重试...
goto git_pull
) else (
echo [信息] 保持当前代理: !HTTP_PROXY!
echo 您可以稍后再次尝试或手动解决网络问题
)
)
) else (
echo.
echo [警告] 遇到其他错误,请检查输出信息以获取更多详情。
)
goto end
) else (
echo [成功] 代码已成功更新!
)
echo 正在更新pip请稍候...
"%CURRENT_DIR%lib\python\python.exe" -m pip install --upgrade pip >nul 2>&1
if %ERRORLEVEL% NEQ 0 (
echo [警告] pip更新失败将继续使用当前版本。
) else (
echo [成功] pip已更新至最新版本
)
echo 正在安装依赖,请稍候...
REM 确保使用正确的Python和pip
"%CURRENT_DIR%lib\python\python.exe" -m pip install -q -r "%CURRENT_DIR%NarratoAI\requirements.txt"
if %ERRORLEVEL% NEQ 0 (
echo [错误] 依赖安装失败请检查requirements.txt文件是否存在。
goto end
) else (
echo [成功] 依赖安装完成!
)
echo ===================================
echo ✓ 程序更新已完成
echo ===================================
:end
if exist "%TEMP%\git_output.txt" del "%TEMP%\git_output.txt"
REM 清除设置的代理环境变量
if defined HTTP_PROXY (
echo [信息] 本次会话的代理设置已清除
set "HTTP_PROXY="
set "HTTPS_PROXY="
)
pause