Skip to content

Commit c481193

Browse files
Uninstall possibly conflicting dependencies first
1 parent ec8cc02 commit c481193

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

src/tasks/install_version.py

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,35 @@ def install_version(version: Version) -> None:
2525

2626
pyra_dir = os.path.join(utils.get_documents_dir(), "pyra")
2727

28-
_install_python_dependencies(pyra_dir, version)
28+
_uninstall_current_python_dependencies(pyra_dir, version)
29+
_install_new_python_dependencies(pyra_dir, version)
2930
_run_ui_installer(pyra_dir, version)
3031
_update_pyra_cli_pointer(pyra_dir, version)
3132
_add_pyra_cli_to_env_path(pyra_dir)
3233
_add_pyra_dir_desktop_shortcut(pyra_dir, version)
3334

3435

35-
def _install_python_dependencies(pyra_dir: str, version: Version) -> None:
36+
def _uninstall_current_python_dependencies(pyra_dir: str, version: Version) -> None:
37+
"""install system dependencies with pip"""
38+
39+
code_dir = os.path.join(pyra_dir, f"pyra-{version.as_str()}")
40+
out = utils.run_shell_command("pip freeze", cwd=code_dir, silent=True)
41+
installed_packages: list[str] = []
42+
for line in out.split("\n"):
43+
if "==" in line:
44+
package_name = line.split("==")[0]
45+
installed_packages.append(package_name)
46+
elif " @ " in line:
47+
package_name = line.split(" @ ")[0]
48+
installed_packages.append(package_name)
49+
if "pip" in installed_packages:
50+
installed_packages.remove("pip")
51+
utils.run_shell_command(
52+
f"pip uninstall -y {' '.join(installed_packages)}", cwd=code_dir, silent=False
53+
)
54+
55+
56+
def _install_new_python_dependencies(pyra_dir: str, version: Version) -> None:
3657
"""install system dependencies with pip"""
3758

3859
code_dir = os.path.join(pyra_dir, f"pyra-{version.as_str()}")
@@ -45,9 +66,6 @@ def _install_python_dependencies(pyra_dir: str, version: Version) -> None:
4566

4667
utils.run_shell_command("pip install -r requirements.txt", cwd=code_dir, silent=False)
4768
else:
48-
utils.run_shell_command(
49-
"pip uninstall poetry polars polars-lts-cpu --yes", cwd=code_dir, silent=False
50-
)
5169
utils.run_shell_command("pip install .", cwd=code_dir, silent=False)
5270
utils.pretty_print("Installed code dependencies", color="green")
5371

src/utils/shell_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def run_shell_command(
4040
assert p.returncode == 0, (
4141
f"command '{command}' failed with exit code {p.returncode}: stderr = '{stderr}'"
4242
)
43-
return stdout.strip()
43+
return stdout.strip("\n\t ")
4444

4545

4646
def pretty_print(

0 commit comments

Comments
 (0)