-
-
Notifications
You must be signed in to change notification settings - Fork 95
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Start now creates a venv, installs the correct requirements, and starts the API. Signed-off-by: kingbri <[email protected]>
- Loading branch information
Showing
3 changed files
with
79 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
:: From https://github.com/jllllll/windows-venv-installers/blob/main/Powershell/run-ps-script.cmd | ||
@echo off | ||
|
||
set SCRIPT_NAME=start.ps1 | ||
|
||
:: This will run the Powershell script named above in the current directory | ||
:: This is intended for systems who have not changed the script execution policy from default | ||
:: These systems will be unable to directly execute Powershell scripts unless done through CMD.exe like below | ||
|
||
if not exist "%~dp0\%SCRIPT_NAME%" ( echo %SCRIPT_NAME% not found! && pause && goto eof ) | ||
call powershell.exe -executionpolicy Bypass ". '%~dp0\start.ps1' %*" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
# Arg parsing | ||
param( | ||
[switch]$ignore_upgrade = $false, | ||
[switch]$activate_venv = $false | ||
) | ||
|
||
# Gets the currently installed CUDA version | ||
function GetRequirementsFile { | ||
$GpuInfo = (Get-WmiObject Win32_VideoController).Name | ||
if ($GpuInfo.Contains("AMD")) { | ||
Write-Output "AMD/ROCm isn't supported on Windows. Please switch to linux." | ||
exit | ||
} | ||
|
||
$CudaPath = $env:CUDA_PATH | ||
$CudaVersion = Split-Path $CudaPath -Leaf | ||
|
||
# Decide requirements based on CUDA version | ||
if ($CudaVersion.Contains("12")) { | ||
return "requirements" | ||
} elseif ($CudaVersion.Contains("11.8")) { | ||
return "requirements-cu118" | ||
} else { | ||
Write-Output "Script cannot find your CUDA installation. installing from requirements-nowheel.txt" | ||
return "requirements-nowheel" | ||
} | ||
} | ||
|
||
# Make a venv and enter it | ||
function CreateAndActivateVenv { | ||
# Is the user using conda? | ||
if ($null -ne $env:CONDA_PREFIX) { | ||
Write-Output "It looks like you're in a conda environment. Skipping venv check." | ||
return | ||
} | ||
|
||
$VenvDir = "$PSScriptRoot\venv" | ||
|
||
if (!(Test-Path -Path $VenvDir)) { | ||
Write-Output "Venv doesn't exist! Creating one for you." | ||
python -m venv venv | ||
} | ||
|
||
. "$VenvDir\Scripts\activate.ps1" | ||
|
||
if ($activate_venv) { | ||
Write-Output "Stopping at venv activation due to user request." | ||
exit | ||
} | ||
} | ||
|
||
# Entrypoint for API start | ||
function StartAPI { | ||
pip -V | ||
if ($ignore_upgrade) { | ||
Write-Output "Ignoring pip dependency upgrade due to user request." | ||
} else { | ||
pip install --upgrade -r "$RequirementsFile.txt" | ||
} | ||
|
||
python main.py | ||
} | ||
|
||
# Navigate to the script directory | ||
Set-Location $PSScriptRoot | ||
$RequirementsFile = GetRequirementsFile | ||
CreateAndActivateVenv | ||
StartAPI |