IGNF / myria3d

Myria3D: Aerial Lidar HD Semantic Segmentation with Deep Learning
https://ignf.github.io/myria3d/
BSD 3-Clause "New" or "Revised" License
151 stars 20 forks source link

Installation failed : no module named yaml #101

Closed MPARIS90 closed 2 months ago

MPARIS90 commented 7 months ago

Hello,

from the user guide I m trying to install myriad3d : (myria3d) mparis@mparis-Vostro-5502:~/miniconda3/envs/myria3d$ pip install --upgrade https://github.com/IGNF/myria3d/tarball/main Collecting https://github.com/IGNF/myria3d/tarball/main Using cached https://github.com/IGNF/myria3d/tarball/main Installing build dependencies ... done Getting requirements to build wheel ...

but that 's failed : `error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> [17 lines of output] Traceback (most recent call last): File "/home/mparis/miniconda3/envs/myria3d/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in main() File "/home/mparis/miniconda3/envs/myria3d/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main json_out['return_val'] = hook(hook_input['kwargs']) File "/home/mparis/miniconda3/envs/myria3d/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel return hook(config_settings) File "/tmp/pip-build-env-_odx74st/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel return self._get_build_requires(config_settings, requirements=['wheel']) File "/tmp/pip-build-env-_odx74st/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires self.run_setup() File "/tmp/pip-build-env-_odx74st/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 480, in run_setup super(_BuildMetaLegacyBackend, self).run_setup(setup_script=setup_script) File "/tmp/pip-build-env-_odx74st/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 311, in run_setup exec(code, locals()) File "", line 1, in ModuleNotFoundError: No module named 'yaml'** [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip. (myria3d) mparis@mparis-Vostro-5502:~/miniconda3/envs/myria3d$ pip install pyyaml Requirement already satisfied: pyyaml in ./lib/python3.9/site-packages (6.0.1) DEPRECATION: pytorch-lightning 1.5.9 has a non-standard dependency specifier torch>=1.7.*. pip 24.0 will enforce this behaviour change. A possible replacement is to upgrade to a newer version of pytorch-lightning or contact the author to suggest that they release a version with a conforming dependency specifiers. Discussion can be found at https://github.com/pypa/pip/issues/12063`

thanks for your help

leavauchier commented 7 months ago

Hello, I have the same issue when I try to run pip install --upgrade https://github.com/IGNF/myria3d/tarball/main, it will need some investigation to find what's wrong, but there is a workaround: as you have probably cloned the repository to generate the conda environment, you can use pip install . --upgrade from the root folder of the repository to install it

julia-sanchez-kitware commented 6 months ago

Hello! Unfortunately, I have the same error installing from the root folder (main version)... :open_mouth: I'll try another tag.

CharlesGaydon commented 5 months ago

Hi @MPARIS90, @julia-sanchez-kitware, just letting you know that using the library without pip installing it first is also an option. Myria3d has no explicit dependencies management, so it is not surprising that pip installing started generating edge errors without our knowledge.

CharlesGaydon commented 5 months ago

Pyyaml seems needed in setup.py, to read package_metadata.yaml. The best solution would be to refactor so that we do not need a yaml for metadata and versionning. I suggest a pyproject.toml + a _version.py script.

BenoitURRUTY commented 5 months ago

Hi, I have the same issue. I will be happy to know if you find a solution

CharlesGaydon commented 5 months ago

I you just need to use the package, consider running it from source directly with python run.py task.task_name=... [options].

If you need a quick workaround for installing with pip install, I would suggest removing the use of pyyaml in setup.py, so that is is not needed during the install. (my guess is that pip has only access to the base conda env where pyyaml is not installed by default).

BenoitURRUTY commented 5 months ago

I tried "python run.py task.task_name=test" but i still have this error : "raise KeyError(f"Environment variable '{key}' not found") omegaconf.errors.InterpolationResolutionError: KeyError raised while resolving interpolation: "Environment variable 'LOGS_DIR' not found" full_key: hydra.run.dir object_type=dict"

I tried to comment the use of yaml but after pm is missing because it's define by "pm = yaml.safe_load(f)" which need yaml