Compare commits

..

3 Commits

Author SHA1 Message Date
dw-0
228f48251f Merge 05b4ef2d18 into 099d47df2f 2024-02-12 00:50:38 -08:00
dw-0
05b4ef2d18 refactor(utils): raise exception if pip not found in venv
Signed-off-by: Dominik Willner <th33xitus@gmail.com>
2024-02-11 20:19:29 +01:00
dw-0
863c62511c fix(klipper): add python3-venv dependency for creating venv
Signed-off-by: Dominik Willner <th33xitus@gmail.com>
2024-02-11 20:19:29 +01:00
2 changed files with 13 additions and 2 deletions

View File

@@ -132,6 +132,7 @@ def install_klipper_packages(klipper_dir: Path) -> None:
script = klipper_dir.joinpath("scripts/install-debian.sh") script = klipper_dir.joinpath("scripts/install-debian.sh")
packages = parse_packages_from_file(script) packages = parse_packages_from_file(script)
packages = [pkg.replace("python-dev", "python3-dev") for pkg in packages] packages = [pkg.replace("python-dev", "python3-dev") for pkg in packages]
packages.append("python3-venv")
# Add dfu-util for octopi-images # Add dfu-util for octopi-images
packages.append("dfu-util") packages.append("dfu-util")
# Add dbus requirement for DietPi distro # Add dbus requirement for DietPi distro

View File

@@ -23,6 +23,7 @@ from typing import List, Literal
from kiauh.utils.input_utils import get_confirm from kiauh.utils.input_utils import get_confirm
from kiauh.utils.logger import Logger from kiauh.utils.logger import Logger
from kiauh.utils.filesystem_utils import check_file_exist
def kill(opt_err_msg: str = "") -> None: def kill(opt_err_msg: str = "") -> None:
@@ -98,7 +99,12 @@ def update_python_pip(target: Path) -> None:
""" """
Logger.print_status("Updating pip ...") Logger.print_status("Updating pip ...")
try: try:
command = [target.joinpath("bin/pip"), "install", "-U", "pip"] pip_location = target.joinpath("bin/pip")
pip_exists = check_file_exist(pip_location)
if not pip_exists:
raise FileNotFoundError("Error updating pip! Not found.")
command = [pip_location, "install", "-U", "pip"]
result = subprocess.run(command, stderr=subprocess.PIPE, text=True) result = subprocess.run(command, stderr=subprocess.PIPE, text=True)
if result.returncode != 0 or result.stderr: if result.returncode != 0 or result.stderr:
Logger.print_error(f"{result.stderr}", False) Logger.print_error(f"{result.stderr}", False)
@@ -106,8 +112,12 @@ def update_python_pip(target: Path) -> None:
return return
Logger.print_ok("Updating pip successfull!") Logger.print_ok("Updating pip successfull!")
except FileNotFoundError as e:
Logger.print_error(e)
raise
except subprocess.CalledProcessError as e: except subprocess.CalledProcessError as e:
Logger.print_error(f"Error updating pip:\n{e.output.decode()}") Logger.print_error(f"Error updating pip:\n{e.output.decode()}")
raise
def install_python_requirements(target: Path, requirements: Path) -> None: def install_python_requirements(target: Path, requirements: Path) -> None:
@@ -117,9 +127,9 @@ def install_python_requirements(target: Path, requirements: Path) -> None:
:param requirements: Path to the requirements.txt file :param requirements: Path to the requirements.txt file
:return: None :return: None
""" """
update_python_pip(target)
Logger.print_status("Installing Python requirements ...") Logger.print_status("Installing Python requirements ...")
try: try:
update_python_pip(target)
command = [target.joinpath("bin/pip"), "install", "-r", f"{requirements}"] command = [target.joinpath("bin/pip"), "install", "-r", f"{requirements}"]
result = subprocess.run(command, stderr=subprocess.PIPE, text=True) result = subprocess.run(command, stderr=subprocess.PIPE, text=True)
if result.returncode != 0 or result.stderr: if result.returncode != 0 or result.stderr: