From 293f2ebda9d0bde887729f80f36b1f0351f96818 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 2 Nov 2023 16:52:34 +0100 Subject: [PATCH] Revert "Find python dependencies directly in python" This reverts commit e7188c2f9f92b6c9a695d850a987aab0bed5de08. --- CuraVersion.py.jinja | 4 +--- conanfile.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/CuraVersion.py.jinja b/CuraVersion.py.jinja index 690a1386d37..515293b8af0 100644 --- a/CuraVersion.py.jinja +++ b/CuraVersion.py.jinja @@ -1,8 +1,6 @@ # Copyright (c) 2023 UltiMaker # Cura is released under the terms of the LGPLv3 or higher. -from pkg_resources import working_set - CuraAppName = "{{ cura_app_name }}" CuraAppDisplayName = "{{ cura_app_display_name }}" CuraVersion = "{{ cura_version }}" @@ -16,4 +14,4 @@ CuraDigitalFactoryURL = "{{ cura_digital_factory_url }}" CuraLatestURL = "{{ cura_latest_url }}" ConanInstalls = {{ conan_installs }} -PythonInstalls = {package.key: {'version': package.version} for package in working_set} \ No newline at end of file +PythonInstalls = {{ python_installs }} diff --git a/conanfile.py b/conanfile.py index 3a53cbf5292..9fd377b6b3b 100644 --- a/conanfile.py +++ b/conanfile.py @@ -152,6 +152,25 @@ def _conan_installs(self): } return conan_installs + def _python_installs(self): + python_installs = {} + + # list of python installs + outer = '"' if self.settings.os == "Windows" else "'" + inner = "'" if self.settings.os == "Windows" else '"' + python_ins_cmd = f"python -c {outer}import pkg_resources; print({inner};{inner}.join([(s.key+{inner},{inner}+ s.version) for s in pkg_resources.working_set])){outer}" + from six import StringIO + buffer = StringIO() + self.run(python_ins_cmd, run_environment= True, env = "conanrun", output=buffer) + + packages = str(buffer.getvalue()).split("-----------------\n") + packages = packages[1].strip('\r\n').split(";") + for package in packages: + name, version = package.split(",") + python_installs[name] = {"version": version} + + return python_installs + def _generate_cura_version(self, location): with open(os.path.join(self.recipe_folder, "CuraVersion.py.jinja"), "r") as f: cura_version_py = Template(f.read()) @@ -178,6 +197,7 @@ def _generate_cura_version(self, location): cura_digital_factory_url = self.conan_data["urls"][self._urls]["digital_factory_url"], cura_latest_url=self.conan_data["urls"][self._urls]["cura_latest_url"], conan_installs=self._conan_installs(), + python_installs=self._python_installs(), )) def _generate_pyinstaller_spec(self, location, entrypoint_location, icon_path, entitlements_file):