iterative / course-ds-base

45 stars 135 forks source link

Install fails on Ubuntu/Python 3.12 #63

Open toonarmycaptain opened 1 month ago

toonarmycaptain commented 1 month ago

Had problems installing the project with python 3.12 on Ubuntu.

pyyaml and pandas failed to build.

pandas seemed to have a permissions issue when it was trying to use clang, so that might be an issue with my setup, but pyyaml seems to be a more general issue:

Collecting pyyaml<6,>=5.4.1 (from -r requirements.txt (line 10))
  Using cached PyYAML-5.4.1.tar.gz (175 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [54 lines of output]
      running egg_info
      writing lib3/PyYAML.egg-info/PKG-INFO
      writing dependency_links to lib3/PyYAML.egg-info/dependency_links.txt
      writing top-level names to lib3/PyYAML.egg-info/top_level.txt
      Traceback (most recent call last):
        File "/home/toonarmycaptain/PycharmProjects/ML-DVC/DVC/course-ds-base/dvc-venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/home/toonarmycaptain/PycharmProjects/ML-DVC/DVC/course-ds-base/dvc-venv/lib/python3.12/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/toonarmycaptain/PycharmProjects/ML-DVC/DVC/course-ds-base/dvc-venv/lib/python3.12/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-nbcjjmi0/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 332, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=[])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-nbcjjmi0/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 302, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-nbcjjmi0/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 318, in run_setup
          exec(code, locals())
        File "<string>", line 271, in <module>
        File "/tmp/pip-build-env-nbcjjmi0/overlay/lib/python3.12/site-packages/setuptools/__init__.py", line 111, in setup
          return distutils.core.setup(**attrs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-nbcjjmi0/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 184, in setup
          return run_commands(dist)
                 ^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-nbcjjmi0/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 200, in run_commands
          dist.run_commands()
        File "/tmp/pip-build-env-nbcjjmi0/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 964, in run_commands
          self.run_command(cmd)
        File "/tmp/pip-build-env-nbcjjmi0/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 948, in run_command
          super().run_command(command)
        File "/tmp/pip-build-env-nbcjjmi0/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 983, in run_command
          cmd_obj.run()
        File "/tmp/pip-build-env-nbcjjmi0/overlay/lib/python3.12/site-packages/setuptools/command/egg_info.py", line 311, in run
          self.find_sources()
        File "/tmp/pip-build-env-nbcjjmi0/overlay/lib/python3.12/site-packages/setuptools/command/egg_info.py", line 319, in find_sources
          mm.run()
        File "/tmp/pip-build-env-nbcjjmi0/overlay/lib/python3.12/site-packages/setuptools/command/egg_info.py", line 540, in run
          self.add_defaults()
        File "/tmp/pip-build-env-nbcjjmi0/overlay/lib/python3.12/site-packages/setuptools/command/egg_info.py", line 578, in add_defaults
          sdist.add_defaults(self)
        File "/tmp/pip-build-env-nbcjjmi0/overlay/lib/python3.12/site-packages/setuptools/command/sdist.py", line 105, in add_defaults
          super().add_defaults()
        File "/tmp/pip-build-env-nbcjjmi0/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/sdist.py", line 250, in add_defaults
          self._add_defaults_ext()
        File "/tmp/pip-build-env-nbcjjmi0/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/sdist.py", line 335, in _add_defaults_ext
          self.filelist.extend(build_ext.get_source_files())
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "<string>", line 201, in get_source_files
        File "/tmp/pip-build-env-nbcjjmi0/overlay/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 107, in __getattr__
          raise AttributeError(attr)
      AttributeError: cython_sources
      [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.

Either way, the project requirements seem to install just fine by commenting out the version requirements:

(dvc-venv) toonarmycaptain$ python --version
Python 3.12.3
(dvc-venv) toonarmycaptain$ cat requirements.txt 
dvc>=2.8.3,<3
joblib>=1.0.1,<2
jupyter>=1.0.0,<2
jupyter_contrib_nbextensions>=0.5.1,<1
matplotlib>=3.4.3,<4
numpy>=1.21.2,<2
#pandas>=1.3.2,<2
pandas
pytest>=6.2.4,<7
python-box>=5.4.1,<6
#pyyaml>=5.4.1,<6
pyyaml
scikit-learn>=0.24.2,<2
scipy>=1.7.1,<2
tqdm>=4.62.2,<5