From c28d5c28b9b6a59a306cedf6f190f7c2f230e407 Mon Sep 17 00:00:00 2001 From: dw-0 Date: Fri, 29 Dec 2023 19:20:04 +0100 Subject: [PATCH] refactor(KIAUH): use pythons own venv module to create a venv Signed-off-by: Dominik Willner --- kiauh/modules/klipper/klipper_setup.py | 7 +++---- kiauh/utils/system_utils.py | 11 ++++------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/kiauh/modules/klipper/klipper_setup.py b/kiauh/modules/klipper/klipper_setup.py index 5b0c6f7..10ce452 100644 --- a/kiauh/modules/klipper/klipper_setup.py +++ b/kiauh/modules/klipper/klipper_setup.py @@ -114,10 +114,9 @@ def setup_klipper_prerequesites() -> None: repo_manager.clone_repo() # install klipper dependencies and create python virtualenv - install_klipper_packages(Path(KLIPPER_DIR)) - create_python_venv(Path(KLIPPER_ENV_DIR)) - klipper_py_req = Path(KLIPPER_REQUIREMENTS_TXT) - install_python_requirements(Path(KLIPPER_ENV_DIR), klipper_py_req) + install_klipper_packages(KLIPPER_DIR) + create_python_venv(KLIPPER_ENV_DIR) + install_python_requirements(KLIPPER_ENV_DIR, KLIPPER_REQUIREMENTS_TXT) def install_klipper_packages(klipper_dir: Path) -> None: diff --git a/kiauh/utils/system_utils.py b/kiauh/utils/system_utils.py index 5d7292e..5b15a16 100644 --- a/kiauh/utils/system_utils.py +++ b/kiauh/utils/system_utils.py @@ -17,6 +17,7 @@ import sys import time import urllib.error import urllib.request +import venv from pathlib import Path from typing import List, Literal @@ -68,14 +69,10 @@ def create_python_venv(target: Path) -> None: Logger.print_status("Set up Python virtual environment ...") if not target.exists(): try: - command = ["python3", "-m", "venv", f"{target}"] - result = subprocess.run(command, stderr=subprocess.PIPE, text=True) - if result.returncode != 0 or result.stderr: - Logger.print_error(f"{result.stderr}", prefix=False) - Logger.print_error("Setup of virtualenv failed!") - return - + venv.create(target, with_pip=True) Logger.print_ok("Setup of virtualenv successfull!") + except OSError as e: + Logger.print_error(f"Error setting up virtualenv:\n{e}") except subprocess.CalledProcessError as e: Logger.print_error(f"Error setting up virtualenv:\n{e.output.decode()}") else: