|
@@ -11,21 +11,20 @@ set PATH="%PATH%";%SystemRoot%\system32
|
|
|
|
|
|
|
|
echo %PATH%
|
|
echo %PATH%
|
|
|
|
|
|
|
|
-:: 安装Miniconda
|
|
|
|
|
-:: 检查是否有特殊字符
|
|
|
|
|
|
|
+
|
|
|
echo "%CD%"| findstr /R /C:"[!#\$%&()\*+,;<=>?@\[\]\^`{|}~\u4E00-\u9FFF ] " >nul && (
|
|
echo "%CD%"| findstr /R /C:"[!#\$%&()\*+,;<=>?@\[\]\^`{|}~\u4E00-\u9FFF ] " >nul && (
|
|
|
echo.
|
|
echo.
|
|
|
- echo 当前路径中存在特殊字符,请使fish-speech的路径不含特殊字符后再运行。 && (
|
|
|
|
|
|
|
+ echo There are special characters in the current path, please make the path of fish-speech free of special characters before running. && (
|
|
|
goto end
|
|
goto end
|
|
|
)
|
|
)
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
-:: 解决跨驱动器安装问题
|
|
|
|
|
|
|
+
|
|
|
set TMP=%CD%\fishenv
|
|
set TMP=%CD%\fishenv
|
|
|
set TEMP=%CD%\fishenv
|
|
set TEMP=%CD%\fishenv
|
|
|
-:: 取消激活已经激活的环境
|
|
|
|
|
|
|
+
|
|
|
(call conda deactivate && call conda deactivate && call conda deactivate) 2>nul
|
|
(call conda deactivate && call conda deactivate && call conda deactivate) 2>nul
|
|
|
-:: 安装路径配置
|
|
|
|
|
|
|
+
|
|
|
set INSTALL_DIR=%cd%\fishenv
|
|
set INSTALL_DIR=%cd%\fishenv
|
|
|
set CONDA_ROOT_PREFIX=%cd%\fishenv\conda
|
|
set CONDA_ROOT_PREFIX=%cd%\fishenv\conda
|
|
|
set INSTALL_ENV_DIR=%cd%\fishenv\env
|
|
set INSTALL_ENV_DIR=%cd%\fishenv\env
|
|
@@ -36,96 +35,91 @@ set MINICONDA_DOWNLOAD_URL=https://mirrors.tuna.tsinghua.edu.cn/anaconda/minicon
|
|
|
set MINICONDA_CHECKSUM=307194e1f12bbeb52b083634e89cc67db4f7980bd542254b43d3309eaf7cb358
|
|
set MINICONDA_CHECKSUM=307194e1f12bbeb52b083634e89cc67db4f7980bd542254b43d3309eaf7cb358
|
|
|
set conda_exists=F
|
|
set conda_exists=F
|
|
|
|
|
|
|
|
-:: 确定是否要安装conda
|
|
|
|
|
call "%CONDA_ROOT_PREFIX%\_conda.exe" --version >nul 2>&1
|
|
call "%CONDA_ROOT_PREFIX%\_conda.exe" --version >nul 2>&1
|
|
|
if "%ERRORLEVEL%" EQU "0" set conda_exists=T
|
|
if "%ERRORLEVEL%" EQU "0" set conda_exists=T
|
|
|
-:: 下载Miniconda
|
|
|
|
|
|
|
+
|
|
|
if "%conda_exists%" == "F" (
|
|
if "%conda_exists%" == "F" (
|
|
|
echo.
|
|
echo.
|
|
|
- echo 正在下载Miniconda...
|
|
|
|
|
|
|
+ echo Downloading Miniconda...
|
|
|
mkdir "%INSTALL_DIR%" 2>nul
|
|
mkdir "%INSTALL_DIR%" 2>nul
|
|
|
- :: 使用curl下载Miniconda安装程序
|
|
|
|
|
call curl -Lk "%MINICONDA_DOWNLOAD_URL%" > "%INSTALL_DIR%\miniconda_installer.exe"
|
|
call curl -Lk "%MINICONDA_DOWNLOAD_URL%" > "%INSTALL_DIR%\miniconda_installer.exe"
|
|
|
- :: 检查下载是否成功
|
|
|
|
|
if errorlevel 1 (
|
|
if errorlevel 1 (
|
|
|
echo.
|
|
echo.
|
|
|
- echo 下载Miniconda失败
|
|
|
|
|
|
|
+ echo Failed to download miniconda.
|
|
|
goto end
|
|
goto end
|
|
|
)
|
|
)
|
|
|
- :: 哈希校验
|
|
|
|
|
for /f %%a in ('
|
|
for /f %%a in ('
|
|
|
certutil -hashfile "%INSTALL_DIR%\miniconda_installer.exe" sha256
|
|
certutil -hashfile "%INSTALL_DIR%\miniconda_installer.exe" sha256
|
|
|
^| find /i /v " "
|
|
^| find /i /v " "
|
|
|
^| find /i "%MINICONDA_CHECKSUM%"
|
|
^| find /i "%MINICONDA_CHECKSUM%"
|
|
|
') do (
|
|
') do (
|
|
|
- :: 如果哈希值匹配预设的校验和,将其存储在变量中
|
|
|
|
|
set "hash=%%a"
|
|
set "hash=%%a"
|
|
|
)
|
|
)
|
|
|
if not defined hash (
|
|
if not defined hash (
|
|
|
echo.
|
|
echo.
|
|
|
- echo Miniconda安装程序的哈希值不匹配
|
|
|
|
|
|
|
+ echo Miniconda hash mismatched!
|
|
|
del "%INSTALL_DIR%\miniconda_installer.exe"
|
|
del "%INSTALL_DIR%\miniconda_installer.exe"
|
|
|
goto end
|
|
goto end
|
|
|
) else (
|
|
) else (
|
|
|
echo.
|
|
echo.
|
|
|
- echo Miniconda安装程序的哈希值成功匹配
|
|
|
|
|
|
|
+ echo Miniconda hash matched successfully.
|
|
|
)
|
|
)
|
|
|
- echo 下载完成,接下来安装Miniconda至"%CONDA_ROOT_PREFIX%"
|
|
|
|
|
|
|
+ echo Downloaded "%CONDA_ROOT_PREFIX%"
|
|
|
start /wait "" "%INSTALL_DIR%\miniconda_installer.exe" /InstallationType=JustMe /NoShortcuts=1 /AddToPath=0 /RegisterPython=0 /NoRegistry=1 /S /D=%CONDA_ROOT_PREFIX%
|
|
start /wait "" "%INSTALL_DIR%\miniconda_installer.exe" /InstallationType=JustMe /NoShortcuts=1 /AddToPath=0 /RegisterPython=0 /NoRegistry=1 /S /D=%CONDA_ROOT_PREFIX%
|
|
|
- :: 测试是否成功安装
|
|
|
|
|
|
|
+
|
|
|
call "%CONDA_ROOT_PREFIX%\_conda.exe" --version
|
|
call "%CONDA_ROOT_PREFIX%\_conda.exe" --version
|
|
|
if errorlevel 1 (
|
|
if errorlevel 1 (
|
|
|
echo.
|
|
echo.
|
|
|
- echo 未安装Miniconda
|
|
|
|
|
|
|
+ echo Cannot install Miniconda.
|
|
|
goto end
|
|
goto end
|
|
|
) else (
|
|
) else (
|
|
|
echo.
|
|
echo.
|
|
|
- echo Miniconda安装成功
|
|
|
|
|
|
|
+ echo Miniconda Install success.
|
|
|
)
|
|
)
|
|
|
- :: 删除安装程序
|
|
|
|
|
|
|
+
|
|
|
del "%INSTALL_DIR%\miniconda_installer.exe"
|
|
del "%INSTALL_DIR%\miniconda_installer.exe"
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
-:: 创建conda环境
|
|
|
|
|
|
|
+
|
|
|
if not exist "%INSTALL_ENV_DIR%" (
|
|
if not exist "%INSTALL_ENV_DIR%" (
|
|
|
echo.
|
|
echo.
|
|
|
- echo 正在创建conda环境...
|
|
|
|
|
|
|
+ echo Creating Conda Environment...
|
|
|
call "%CONDA_ROOT_PREFIX%\_conda.exe" create --no-shortcuts -y -k --prefix "%INSTALL_ENV_DIR%" -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ python=3.10
|
|
call "%CONDA_ROOT_PREFIX%\_conda.exe" create --no-shortcuts -y -k --prefix "%INSTALL_ENV_DIR%" -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ python=3.10
|
|
|
- :: 检查环境创建是否成功
|
|
|
|
|
|
|
+
|
|
|
if errorlevel 1 (
|
|
if errorlevel 1 (
|
|
|
echo.
|
|
echo.
|
|
|
- echo 创建conda环境失败
|
|
|
|
|
|
|
+ echo Failed to Create Environment.
|
|
|
goto end
|
|
goto end
|
|
|
)
|
|
)
|
|
|
)
|
|
)
|
|
|
-:: 检查是否真的创建了环境
|
|
|
|
|
|
|
+
|
|
|
if not exist "%INSTALL_ENV_DIR%\python.exe" (
|
|
if not exist "%INSTALL_ENV_DIR%\python.exe" (
|
|
|
echo.
|
|
echo.
|
|
|
- echo Conda环境不存在
|
|
|
|
|
|
|
+ echo Conda Env does not exist.
|
|
|
goto end
|
|
goto end
|
|
|
)
|
|
)
|
|
|
-:: 环境隔离
|
|
|
|
|
|
|
+
|
|
|
set PYTHONNOUSERSITE=1
|
|
set PYTHONNOUSERSITE=1
|
|
|
set PYTHONPATH=
|
|
set PYTHONPATH=
|
|
|
set PYTHONHOME=
|
|
set PYTHONHOME=
|
|
|
set "CUDA_PATH=%INSTALL_ENV_DIR%"
|
|
set "CUDA_PATH=%INSTALL_ENV_DIR%"
|
|
|
set "CUDA_HOME=%CUDA_PATH%"
|
|
set "CUDA_HOME=%CUDA_PATH%"
|
|
|
-:: 激活环境
|
|
|
|
|
|
|
+
|
|
|
call "%CONDA_ROOT_PREFIX%\condabin\conda.bat" activate "%INSTALL_ENV_DIR%"
|
|
call "%CONDA_ROOT_PREFIX%\condabin\conda.bat" activate "%INSTALL_ENV_DIR%"
|
|
|
-:: 检查环境是否成功激活
|
|
|
|
|
|
|
+
|
|
|
if errorlevel 1 (
|
|
if errorlevel 1 (
|
|
|
echo.
|
|
echo.
|
|
|
- echo 环境激活失败
|
|
|
|
|
|
|
+ echo Failed to activate Env.
|
|
|
goto end
|
|
goto end
|
|
|
) else (
|
|
) else (
|
|
|
echo.
|
|
echo.
|
|
|
- echo 环境激活成功
|
|
|
|
|
|
|
+ echo successfully create env.
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
-:: 安装依赖
|
|
|
|
|
|
|
+
|
|
|
set "packages=torch torchvision torchaudio openai-whisper fish-speech"
|
|
set "packages=torch torchvision torchaudio openai-whisper fish-speech"
|
|
|
|
|
|
|
|
-:: 检查包是否已安装,如果没有安装则添加到需要安装的包列表
|
|
|
|
|
|
|
+
|
|
|
set "install_packages="
|
|
set "install_packages="
|
|
|
for %%p in (%packages%) do (
|
|
for %%p in (%packages%) do (
|
|
|
%PIP_CMD% show %%p >nul 2>&1
|
|
%PIP_CMD% show %%p >nul 2>&1
|
|
@@ -137,8 +131,8 @@ for %%p in (%packages%) do (
|
|
|
|
|
|
|
|
if not "!install_packages!"=="" (
|
|
if not "!install_packages!"=="" (
|
|
|
echo.
|
|
echo.
|
|
|
- echo 正在安装以下包: !install_packages!
|
|
|
|
|
- :: 针对不同的包使用不同的安装源
|
|
|
|
|
|
|
+ echo Installing: !install_packages!
|
|
|
|
|
+
|
|
|
for %%p in (!install_packages!) do (
|
|
for %%p in (!install_packages!) do (
|
|
|
if "!USE_MIRROR!"=="true" (
|
|
if "!USE_MIRROR!"=="true" (
|
|
|
if "%%p"=="torch" (
|
|
if "%%p"=="torch" (
|
|
@@ -167,7 +161,7 @@ if not "!install_packages!"=="" (
|
|
|
)
|
|
)
|
|
|
)
|
|
)
|
|
|
)
|
|
)
|
|
|
-echo 环境检查并安装完成
|
|
|
|
|
|
|
+echo Environment Check: Success.
|
|
|
|
|
|
|
|
endlocal
|
|
endlocal
|
|
|
pause
|
|
pause
|