diff --git a/kiauh/components/klipper/klipper_setup.py b/kiauh/components/klipper/klipper_setup.py index f085d7c..1c6b5bc 100644 --- a/kiauh/components/klipper/klipper_setup.py +++ b/kiauh/components/klipper/klipper_setup.py @@ -75,7 +75,7 @@ def install_klipper() -> None: try: if not kl_im.instances: - check_install_dependencies(["git"]) + check_install_dependencies(["git", "python3-virtualenv"]) setup_klipper_prerequesites() count = 0 @@ -127,7 +127,6 @@ def setup_klipper_prerequesites() -> None: def install_klipper_packages() -> None: script = KLIPPER_INSTALL_SCRIPT packages = parse_packages_from_file(script) - packages.append("python3-venv") # todo: remove once switched to virtualenv # Add dbus requirement for DietPi distro if Path("/boot/dietpi/.version").exists(): diff --git a/kiauh/utils/sys_utils.py b/kiauh/utils/sys_utils.py index 477a5d2..9b150ce 100644 --- a/kiauh/utils/sys_utils.py +++ b/kiauh/utils/sys_utils.py @@ -16,7 +16,6 @@ import sys import time import urllib.error import urllib.request -import venv from pathlib import Path from subprocess import DEVNULL, PIPE, CalledProcessError, Popen, run from typing import List, Literal @@ -96,13 +95,11 @@ def create_python_venv(target: Path) -> None: Logger.print_status("Set up Python virtual environment ...") if not target.exists(): try: - venv.create(target, with_pip=True) + cmd = ["virtualenv", "-p", "/usr/bin/python3", target.as_posix()] + run(cmd, check=True) Logger.print_ok("Setup of virtualenv successful!") - except OSError as e: - Logger.print_error(f"Error setting up virtualenv:\n{e}") - raise except CalledProcessError as e: - Logger.print_error(f"Error setting up virtualenv:\n{e.output.decode()}") + Logger.print_error(f"Error setting up virtualenv:\n{e}") raise else: if get_confirm("Virtualenv already exists. Re-create?", default_choice=False):