venv_create/venv_create.py

51 lines
1.3 KiB
Python

import os
import subprocess
import sys
import urllib.request
import zipfile
import shutil
VENV_DIR = "venv"
REQUIREMENTS_FILE = "requirements.txt"
MODEL_URL = "https://alphacephei.com/vosk/models/vosk-model-small-pl-0.22.zip"
MODEL_ZIP = "vosk-model-small-pl-0.22.zip"
MODEL_DIR = "vosk-model-small-pl-0.22"
def create_virtualenv():
print("[+] Tworzenie środowiska wirtualnego...")
subprocess.check_call([sys.executable, "-m", "venv", VENV_DIR])
def install_requirements():
print("[+] Instalacja pakietów z requirements.txt...")
pip_path = os.path.join(VENV_DIR, "bin", "pip") if os.name != "nt" else os.path.join(VENV_DIR, "Scripts", "pip.exe")
subprocess.check_call([pip_path, "install", "-r", REQUIREMENTS_FILE])
def download_model():
if os.path.exists(MODEL_DIR):
print("[i] Model już istnieje, pomijam pobieranie.")
return
print(f"[+] Pobieranie modelu z {MODEL_URL}...")
urllib.request.urlretrieve(MODEL_URL, MODEL_ZIP)
print("[+] Rozpakowywanie modelu...")
with zipfile.ZipFile(MODEL_ZIP, 'r') as zip_ref:
zip_ref.extractall(".")
print("[+] Usuwanie archiwum ZIP...")
os.remove(MODEL_ZIP)
def main():
create_virtualenv()
install_requirements()
download_model()
print("[✓] Gotowe!")
if __name__ == "__main__":
main()