File size: 5,316 Bytes
3af2248 815fdc9 3af2248 815fdc9 3af2248 815fdc9 3af2248 815fdc9 3af2248 2b52e56 3af2248 b19b8b2 3af2248 42bef8b c1c01aa 3af2248 815fdc9 3af2248 f34f662 b1a9126 3af2248 b1a9126 3af2248 b1a9126 3af2248 f34f662 3af2248 f34f662 572e9a4 3af2248 572e9a4 f34f662 3af2248 40a3a53 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | import subprocess
import sys
import os
import urllib.request
def colored(text, color):
"""
Функция для вывода цветного текста в консоль.
"""
colors = {
'red': '\033[91m',
'green': '\033[92m',
'yellow': '\033[93m',
'blue': '\033[94m',
'magenta': '\033[95m',
'cyan': '\033[96m',
'white': '\033[97m',
}
return colors.get(color, '') + text + '\033[0m'
def uninstall_module(module_name, python_path):
"""
Функция для деинсталляции модуля.
"""
print(colored(f"Удаление модуля {module_name}...", 'red'))
pip_path = os.path.join(python_path, "Scripts", "pip.exe")
subprocess.run([
pip_path,
"uninstall",
"-y",
module_name
])
def download_file(url, filename):
"""
Функция для загрузки файла с помощью urllib.request.
"""
print(colored(f"Загрузка файла {filename}...", 'magenta'))
try:
with urllib.request.urlopen(url) as response, open(filename, 'wb') as f:
f.write(response.read())
print(colored(f"Файл {filename} успешно загружен.", 'magenta'))
except Exception as e:
print(colored(f"Ошибка при загрузке файла: {e}", 'red'))
def install_module(filename, python_path):
"""
Функция для установки модуля из файла .whl.
"""
print(colored(f"Установка модуля из {filename}...", 'yellow'))
pip_path = os.path.join(python_path, "Scripts", "pip.exe")
subprocess.run([
pip_path,
"install",
filename
])
def install_from_index(module_name, index_url, python_path):
"""
Функция для установки модуля из указанного индекса.
"""
print(colored(f"Установка модуля {module_name} с индекса {index_url}...", 'yellow'))
pip_path = os.path.join(python_path, "Scripts", "pip.exe")
subprocess.run([
pip_path,
"install",
"--extra-index-url",
index_url,
module_name
])
if __name__ == "__main__":
# Получение пути к текущей директории
current_dir = os.path.dirname(os.path.abspath(__file__))
# Создание полного пути к папке Python
python_path = os.path.join(current_dir, "python_embeded")
# Создание полного пути к папке Scripts
python_scripts_path = os.path.join(python_path, "Scripts")
# Определение путей к git
git_path = os.path.join(current_dir, "git")
git_bin_path = os.path.join(git_path, "bin")
git_exe_path = os.path.join(git_bin_path, "git.exe")
git_libexec_path = os.path.join(git_path, "libexec")
# Обновление переменной PATH
os.environ['PATH'] = f"{git_path};{git_bin_path};{git_libexec_path};{python_path};{python_scripts_path}"
# os.environ['PATH'] = f"{git_path};{git_bin_path};{git_libexec_path};{os.environ['PATH']}"
# Установка Comfy
print(colored("Установка Comfy", 'yellow'))
subprocess.run([
git_exe_path,
"clone",
"https://github.com/comfyanonymous/ComfyUI"
])
# Обновление numpy/onnxruntime/onnxruntime-gpu
modules_to_uninstall = ["numpy", "onnxruntime", "onnxruntime-gpu"]
for module in modules_to_uninstall:
uninstall_module(module, python_path)
# Обновление модуля pip
print(colored("Обновление модуля pip...", 'yellow'))
pip_path = os.path.join(python_path, "Scripts", "pip.exe")
subprocess.run([
pip_path, # Добавлен путь к pip.exe
"install",
"--upgrade",
"pip"
])
# Установка numpy==1.26.4
print(colored("Установка модуля numpy==1.26.4...", 'yellow'))
pip_path = os.path.join(python_path, "Scripts", "pip.exe")
subprocess.run([
pip_path, # Добавлен путь к pip.exe
"install",
"numpy==1.26.4"
])
# Загрузка файла insightface-0.7.3-cp311-cp311-win_amd64.whl
url = "https://github.com/Gourieff/Assets/raw/main/Insightface/insightface-0.7.3-cp311-cp311-win_amd64.whl"
filename = "insightface-0.7.3-cp311-cp311-win_amd64.whl"
download_file(url, filename)
# Установка модуля из файла insightface-0.7.3-cp311-cp311-win_amd64.whl
install_module(filename, python_path)
# Установка torch/torchvision/torchaudio
modules_to_install = ["torch", "torchvision", "torchaudio"]
pytorch_index = "https://download.pytorch.org/whl/cu124"
for module in modules_to_install:
install_from_index(module, pytorch_index, python_path)
# Установка onnxruntime-gpu из сетевого ресурса
onnxruntime_index = "https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/"
install_from_index("onnxruntime-gpu", onnxruntime_index, python_path)
print(colored("Установка завершена.", 'green')) |