This commit is contained in:
88
cleanup_deps.py
Normal file
88
cleanup_deps.py
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Скрипт для очистки неиспользуемых зависимостей
|
||||||
|
Убирает лишние пакеты и оставляет только необходимые для работы
|
||||||
|
"""
|
||||||
|
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
def run_command(cmd, check=True):
|
||||||
|
"""Выполняет команду и возвращает результат"""
|
||||||
|
try:
|
||||||
|
result = subprocess.run(cmd, shell=True, capture_output=True, text=True, check=check)
|
||||||
|
return result.stdout.strip()
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
print(f"❌ Ошибка выполнения команды: {e}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
def get_installed_packages():
|
||||||
|
"""Получает список установленных пакетов"""
|
||||||
|
return run_command("uv pip list")
|
||||||
|
|
||||||
|
def uninstall_package(package):
|
||||||
|
"""Удаляет пакет"""
|
||||||
|
print(f"🗑️ Удаляю {package}...")
|
||||||
|
return run_command(f"uv pip uninstall {package} -y", check=False)
|
||||||
|
|
||||||
|
def main():
|
||||||
|
print("🧹 Очистка неиспользуемых зависимостей")
|
||||||
|
print("=" * 50)
|
||||||
|
|
||||||
|
# Пакеты которые можно безопасно удалить
|
||||||
|
packages_to_remove = [
|
||||||
|
# Google packages (если не используете аналитику)
|
||||||
|
"google-analytics-data",
|
||||||
|
"google-api-core",
|
||||||
|
"google-auth",
|
||||||
|
"googleapis-common-protos",
|
||||||
|
|
||||||
|
# gRPC (если не используете)
|
||||||
|
"grpcio",
|
||||||
|
"grpcio-status",
|
||||||
|
|
||||||
|
# Лишние type stubs
|
||||||
|
"types-authlib",
|
||||||
|
"types-cffi",
|
||||||
|
"types-cryptography",
|
||||||
|
"types-orjson",
|
||||||
|
"types-pyopenssl",
|
||||||
|
"types-python-dateutil",
|
||||||
|
"types-pyyaml",
|
||||||
|
"types-requests",
|
||||||
|
"types-setuptools",
|
||||||
|
|
||||||
|
# Дополнительные ML пакеты (если не нужны)
|
||||||
|
"scipy",
|
||||||
|
"scikit-learn",
|
||||||
|
|
||||||
|
# Pillow (если не обрабатываете изображения)
|
||||||
|
"pillow",
|
||||||
|
|
||||||
|
# TQDM (если не нужны progress bars)
|
||||||
|
"tqdm",
|
||||||
|
]
|
||||||
|
|
||||||
|
print("📦 Пакеты для удаления:")
|
||||||
|
for pkg in packages_to_remove:
|
||||||
|
print(f" - {pkg}")
|
||||||
|
|
||||||
|
response = input("\n❓ Продолжить удаление? (y/N): ")
|
||||||
|
if response.lower() != 'y':
|
||||||
|
print("❌ Отменено")
|
||||||
|
return
|
||||||
|
|
||||||
|
print("\n🚀 Начинаю удаление...")
|
||||||
|
|
||||||
|
for package in packages_to_remove:
|
||||||
|
uninstall_package(package)
|
||||||
|
|
||||||
|
print("\n✅ Очистка завершена!")
|
||||||
|
print("\n📋 Рекомендации:")
|
||||||
|
print("1. Проверьте что приложение работает: uv run python main.py")
|
||||||
|
print("2. Если что-то сломалось, восстановите: uv pip install -r requirements.txt")
|
||||||
|
print("3. Для минимальной установки используйте: uv pip install -r requirements.minimal.txt")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
@@ -31,7 +31,11 @@ dependencies = [
|
|||||||
"httpx",
|
"httpx",
|
||||||
"redis[hiredis]",
|
"redis[hiredis]",
|
||||||
"sentry-sdk[starlette,sqlalchemy]",
|
"sentry-sdk[starlette,sqlalchemy]",
|
||||||
"sentence-transformers",
|
# ML packages (CPU-only для предотвращения CUDA)
|
||||||
|
"torch>=2.0.0",
|
||||||
|
"sentence-transformers>=2.2.0",
|
||||||
|
"transformers>=4.56.0",
|
||||||
|
"scikit-learn>=1.7.0",
|
||||||
"starlette",
|
"starlette",
|
||||||
"gql",
|
"gql",
|
||||||
"ariadne",
|
"ariadne",
|
||||||
|
|||||||
@@ -17,7 +17,10 @@ orjson>=3.9.0
|
|||||||
pydantic>=2.0.0
|
pydantic>=2.0.0
|
||||||
numpy>=1.24.0
|
numpy>=1.24.0
|
||||||
muvera>=0.2.0
|
muvera>=0.2.0
|
||||||
|
torch>=2.0.0
|
||||||
sentence-transformers>=2.2.0
|
sentence-transformers>=2.2.0
|
||||||
|
transformers>=4.56.0
|
||||||
|
scikit-learn>=1.7.0
|
||||||
|
|
||||||
# Type stubs
|
# Type stubs
|
||||||
types-requests>=2.31.0
|
types-requests>=2.31.0
|
||||||
|
|||||||
8
uv.lock
generated
8
uv.lock
generated
@@ -418,10 +418,13 @@ dependencies = [
|
|||||||
{ name = "pydantic" },
|
{ name = "pydantic" },
|
||||||
{ name = "pyjwt" },
|
{ name = "pyjwt" },
|
||||||
{ name = "redis", extra = ["hiredis"] },
|
{ name = "redis", extra = ["hiredis"] },
|
||||||
|
{ name = "scikit-learn" },
|
||||||
{ name = "sentence-transformers" },
|
{ name = "sentence-transformers" },
|
||||||
{ name = "sentry-sdk", extra = ["sqlalchemy", "starlette"] },
|
{ name = "sentry-sdk", extra = ["sqlalchemy", "starlette"] },
|
||||||
{ name = "sqlalchemy" },
|
{ name = "sqlalchemy" },
|
||||||
{ name = "starlette" },
|
{ name = "starlette" },
|
||||||
|
{ name = "torch" },
|
||||||
|
{ name = "transformers" },
|
||||||
{ name = "types-authlib" },
|
{ name = "types-authlib" },
|
||||||
{ name = "types-orjson" },
|
{ name = "types-orjson" },
|
||||||
{ name = "types-pyjwt" },
|
{ name = "types-pyjwt" },
|
||||||
@@ -471,10 +474,13 @@ requires-dist = [
|
|||||||
{ name = "pydantic" },
|
{ name = "pydantic" },
|
||||||
{ name = "pyjwt", specifier = ">=2.10" },
|
{ name = "pyjwt", specifier = ">=2.10" },
|
||||||
{ name = "redis", extras = ["hiredis"] },
|
{ name = "redis", extras = ["hiredis"] },
|
||||||
{ name = "sentence-transformers" },
|
{ name = "scikit-learn", specifier = ">=1.7.0" },
|
||||||
|
{ name = "sentence-transformers", specifier = ">=2.2.0" },
|
||||||
{ name = "sentry-sdk", extras = ["starlette", "sqlalchemy"] },
|
{ name = "sentry-sdk", extras = ["starlette", "sqlalchemy"] },
|
||||||
{ name = "sqlalchemy", specifier = ">=2.0.0" },
|
{ name = "sqlalchemy", specifier = ">=2.0.0" },
|
||||||
{ name = "starlette" },
|
{ name = "starlette" },
|
||||||
|
{ name = "torch", specifier = ">=2.0.0" },
|
||||||
|
{ name = "transformers", specifier = ">=4.56.0" },
|
||||||
{ name = "types-authlib" },
|
{ name = "types-authlib" },
|
||||||
{ name = "types-orjson" },
|
{ name = "types-orjson" },
|
||||||
{ name = "types-pyjwt" },
|
{ name = "types-pyjwt" },
|
||||||
|
|||||||
Reference in New Issue
Block a user