Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

uv fails to install pyyaml==5.4.1 #1455

Closed
sbrugman opened this issue Feb 16, 2024 · 2 comments
Closed

uv fails to install pyyaml==5.4.1 #1455

sbrugman opened this issue Feb 16, 2024 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@sbrugman
Copy link
Contributor

uv pip install "pyyaml<6"

Resolved 1 package in 0ms
error: Failed to download distributions
  Caused by: Failed to fetch wheel: pyyaml==5.4.1
  Caused by: Failed to build: pyyaml==5.4.1
  Caused by: Build backend failed to determine extra requires with `build_wheel()`:
--- stdout:
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
--- stderr:
Traceback (most recent call last):
  File "<string>", line 10, in <module>
  File "/private/var/folders/ns/sj_tmscs2b10hq8jbzxvx54r0000gq/T/.tmpF4F30H/.venv/lib/python3.10/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
    return self._get_build_requires(config_settings, requirements=['wheel'])
  File "/private/var/folders/ns/sj_tmscs2b10hq8jbzxvx54r0000gq/T/.tmpF4F30H/.venv/lib/python3.10/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
    self.run_setup()
  File "/private/var/folders/ns/sj_tmscs2b10hq8jbzxvx54r0000gq/T/.tmpF4F30H/.venv/lib/python3.10/site-packages/setuptools/build_meta.py", line 311, in run_setup
    exec(code, locals())
  File "<string>", line 271, in <module>
  File "/private/var/folders/ns/sj_tmscs2b10hq8jbzxvx54r0000gq/T/.tmpF4F30H/.venv/lib/python3.10/site-packages/setuptools/__init__.py", line 103, in setup
    return distutils.core.setup(**attrs)
  File "/private/var/folders/ns/sj_tmscs2b10hq8jbzxvx54r0000gq/T/.tmpF4F30H/.venv/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 185, in setup
    return run_commands(dist)
  File "/private/var/folders/ns/sj_tmscs2b10hq8jbzxvx54r0000gq/T/.tmpF4F30H/.venv/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
    dist.run_commands()
  File "/private/var/folders/ns/sj_tmscs2b10hq8jbzxvx54r0000gq/T/.tmpF4F30H/.venv/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
    self.run_command(cmd)
  File "/private/var/folders/ns/sj_tmscs2b10hq8jbzxvx54r0000gq/T/.tmpF4F30H/.venv/lib/python3.10/site-packages/setuptools/dist.py", line 963, in run_command
    super().run_command(command)
  File "/private/var/folders/ns/sj_tmscs2b10hq8jbzxvx54r0000gq/T/.tmpF4F30H/.venv/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
    cmd_obj.run()
  File "/private/var/folders/ns/sj_tmscs2b10hq8jbzxvx54r0000gq/T/.tmpF4F30H/.venv/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 321, in run
    self.find_sources()
  File "/private/var/folders/ns/sj_tmscs2b10hq8jbzxvx54r0000gq/T/.tmpF4F30H/.venv/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 329, in find_sources
    mm.run()
  File "/private/var/folders/ns/sj_tmscs2b10hq8jbzxvx54r0000gq/T/.tmpF4F30H/.venv/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 550, in run
    self.add_defaults()
  File "/private/var/folders/ns/sj_tmscs2b10hq8jbzxvx54r0000gq/T/.tmpF4F30H/.venv/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 588, in add_defaults
    sdist.add_defaults(self)
  File "/private/var/folders/ns/sj_tmscs2b10hq8jbzxvx54r0000gq/T/.tmpF4F30H/.venv/lib/python3.10/site-packages/setuptools/command/sdist.py", line 102, in add_defaults
    super().add_defaults()
  File "/private/var/folders/ns/sj_tmscs2b10hq8jbzxvx54r0000gq/T/.tmpF4F30H/.venv/lib/python3.10/site-packages/setuptools/_distutils/command/sdist.py", line 251, in add_defaults
    self._add_defaults_ext()
  File "/private/var/folders/ns/sj_tmscs2b10hq8jbzxvx54r0000gq/T/.tmpF4F30H/.venv/lib/python3.10/site-packages/setuptools/_distutils/command/sdist.py", line 336, in _add_defaults_ext
    self.filelist.extend(build_ext.get_source_files())
  File "<string>", line 201, in get_source_files
  File "/private/var/folders/ns/sj_tmscs2b10hq8jbzxvx54r0000gq/T/.tmpF4F30H/.venv/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 107, in __getattr__
    raise AttributeError(attr)
AttributeError: cython_sources
---

pip install "pyyaml<6"

Collecting pyyaml<6
  Using cached PyYAML-5.4.1-cp310-cp310-macosx_12_0_arm64.whl
Installing collected packages: pyyaml
  Attempting uninstall: pyyaml
    Found existing installation: PyYAML 6.0
    Uninstalling PyYAML-6.0:
      Successfully uninstalled PyYAML-6.0
Successfully installed pyyaml-5.4.1
@dhruvmanila dhruvmanila added the bug Something isn't working label Feb 16, 2024
@BurntSushi
Copy link
Member

I'm able to reproduce this, thank you!

@BurntSushi BurntSushi self-assigned this Feb 16, 2024
@BurntSushi
Copy link
Member

OK, so I took a deeper dive into this and I found what appears to be a pretty nasty rat's nest of build problems with PyYAML and Cython:

So then I wondered, but if pip works, why doesn't uv? So I tried pip and it actually fails for me:

$ pip install "pyyaml<6"
Collecting pyyaml<6
  Downloading PyYAML-5.4.1.tar.gz (175 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 175.1/175.1 kB 4.8 MB/s eta 0:00:00
  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/andrew/astral/issues/uv/i1455/pip/.venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/home/andrew/astral/issues/uv/i1455/pip/.venv/lib/python3.11/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/andrew/astral/issues/uv/i1455/pip/.venv/lib/python3.11/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-ter9lqc8/overlay/lib/python3.11/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-ter9lqc8/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-ter9lqc8/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 311, in run_setup
          exec(code, locals())
        File "<string>", line 271, in <module>
        File "/tmp/pip-build-env-ter9lqc8/overlay/lib/python3.11/site-packages/setuptools/__init__.py", line 103, in setup
          return distutils.core.setup(**attrs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-ter9lqc8/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
                 ^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-ter9lqc8/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/tmp/pip-build-env-ter9lqc8/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "/tmp/pip-build-env-ter9lqc8/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 963, in run_command
          super().run_command(command)
        File "/tmp/pip-build-env-ter9lqc8/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/tmp/pip-build-env-ter9lqc8/overlay/lib/python3.11/site-packages/setuptools/command/egg_info.py", line 321, in run
          self.find_sources()
        File "/tmp/pip-build-env-ter9lqc8/overlay/lib/python3.11/site-packages/setuptools/command/egg_info.py", line 329, in find_sources
          mm.run()
        File "/tmp/pip-build-env-ter9lqc8/overlay/lib/python3.11/site-packages/setuptools/command/egg_info.py", line 550, in run
          self.add_defaults()
        File "/tmp/pip-build-env-ter9lqc8/overlay/lib/python3.11/site-packages/setuptools/command/egg_info.py", line 588, in add_defaults
          sdist.add_defaults(self)
        File "/tmp/pip-build-env-ter9lqc8/overlay/lib/python3.11/site-packages/setuptools/command/sdist.py", line 102, in add_defaults
          super().add_defaults()
        File "/tmp/pip-build-env-ter9lqc8/overlay/lib/python3.11/site-packages/setuptools/_distutils/command/sdist.py", line 251, in add_defaults
          self._add_defaults_ext()
        File "/tmp/pip-build-env-ter9lqc8/overlay/lib/python3.11/site-packages/setuptools/_distutils/command/sdist.py", line 336, 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-ter9lqc8/overlay/lib/python3.11/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

And in particular, this is precisely the same error that uv pip install "pyyaml<6" fails with. So to me, this seems likely not a problem with uv, although it is still somewhat mysterious that your pip install command worked. But, because of the known build errors with PyYAML and Cython, it seems likely that this isn't an issue on our end. Of course, I'm sure we'd welcome a deeper analysis here!

Note that installing pyyaml>=6 works:

$ uv pip install "pyyaml>=6"
Resolved 1 package in 59ms
Downloaded 1 package in 47ms
Installed 1 package in 6ms
 + pyyaml==6.0.1

@BurntSushi BurntSushi closed this as not planned Won't fix, can't repro, duplicate, stale Feb 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants