From 0808974bf01cb8d85f49fcd48c4b791e3653125a Mon Sep 17 00:00:00 2001 From: linyqh Date: Sun, 13 Apr 2025 15:41:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Ebat=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- check_gpu_cuda_cudnn.bat | Bin 0 -> 5384 bytes start.bat | 88 ++++++++++++++++++++++++++++++ update.bat | 112 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 200 insertions(+) create mode 100644 check_gpu_cuda_cudnn.bat create mode 100644 start.bat create mode 100644 update.bat diff --git a/check_gpu_cuda_cudnn.bat b/check_gpu_cuda_cudnn.bat new file mode 100644 index 0000000000000000000000000000000000000000..2cb5f5d2395788c513d88ac0729c70b3ad0f5f4d GIT binary patch literal 5384 zcmd5=O-x)>6h4}Cq0*=ul6LhVL0eMjSlh;6XfznL{!Gh&WibQ8{DUw<83qJXp-r0D zW@>6w^5)%l-@WI2=bZ1H zd+%)i{hAacCu1@t9_}KpgYvZL$;n0Zot9G)!}Su{XQU#tGHFK4U|tRFDU8kF>EXSC zRu=7otnUgWvPGGtz|^l+kk0^yCC0`vM|N+2det{~HR#&91oGt{qYi6==pw7gm$#)!@mvBeT$bgkLx+jkP3rQAei{(ADqYfr|g zTP2mCw}zWB8H2u@Oi0?qCl3oa@~HV`t7tHKa@^oNGPe-%28 zVtn3M67-eL9uLT@{Pec`-fg5roW%%duiwMZWxq+#!`8oK2U*j$LtfjqryQ@8_itB^ zl_L&1$Q&v{C*x5ld`b z`h9Wrv#V*#KE{eHXKcdUZp^Y%i2dmXEQ|KTh+KlMqG4qonrrY9Sy44e$Rwg^Z@?tY z8OJErG3H6yWUceMWtK8Z=h;lsH-ChK3{&5cGnQ#ldMx8yhC1H43QN|hu4rz#@qT87 zEv+DT(k3Hk(aIwqi?H6t(Pq!?Gq@tvkgvU4Ic77#*4~xU>cC%@ug*CHa7 zrh1-LY^RnXFz+Pl+=-@Y=|fFOh3xTs7B$D7sOo6fpn}Z91I!6)cZV#(Q}jZxmMV8O zGRMIITkrYw$Hz)YNhhR4=~ij_jK-3Ohq6X~YHMvG6Faf$<`KQg21r%5K6mFQ?NLUv zE^tkBT?4R^mi{4A#L{i_TP2+ZECdEsfYXs+?vV={C5m3 zo2;vc&;6NvaOLNl?_KLDja?`vN8@cD)`uPz*82}F2X}(XtLT+E8l~e&Yu2^Hdrrq$ z%ZOJ;?=R9*DmT13J<2nHdOqsOz25!Bug#uK@p&eXnu&_mTh8zI6ril}uYKI9a_>(b z?2N_U;(WNB`@67ITLr@V>F{pETE_FK-F5M-s+qKN&(x?USrocD?|omiHyeM&*^T=H zdqV9j@s!k>joP^~W-e~ctGm`lmpy+B69+XZN3B13^5HriT(ciBsDIDJ2ysO?7{8IM z6i2HlE!dj(pm?|7ycCX%N)2bwQ@M@!vzhK?`Fy?Ko*v0B?$l<@ncDpa!Tx^$ DN=ARF literal 0 HcmV?d00001 diff --git a/start.bat b/start.bat new file mode 100644 index 0000000..37a788b --- /dev/null +++ b/start.bat @@ -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 配置 ==================== +:: 设置 Streamlit(Python 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 diff --git a/update.bat b/update.bat new file mode 100644 index 0000000..963f44c --- /dev/null +++ b/update.bat @@ -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 \ No newline at end of file