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

Unable to install with modern build tools #111

Open
jaraco opened this issue Jan 27, 2024 · 3 comments
Open

Unable to install with modern build tools #111

jaraco opened this issue Jan 27, 2024 · 3 comments

Comments

@jaraco
Copy link
Collaborator

jaraco commented Jan 27, 2024

I'm trying to install csv2ofx on Python 3.12, but it fails when PyYAML<6 fails to build:

 ~ @ pip-run -v git+https://github.com/reubano/csv2ofx
Collecting git+https://github.com/reubano/csv2ofx
  Cloning https://github.com/reubano/csv2ofx to /private/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-req-build-doqauwa9
  Running command git clone --filter=blob:none --quiet https://github.com/reubano/csv2ofx /private/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-req-build-doqauwa9
  Resolved https://github.com/reubano/csv2ofx to commit 445b76e273b1363b27eb0c174e78821b8d6f2444
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Collecting meza<0.47.0,>=0.46.0 (from csv2ofx==0.30.0)
  Using cached meza-0.46.0-py2.py3-none-any.whl (56 kB)
Collecting python-dateutil<3.0.0,>=2.7.2 (from csv2ofx==0.30.0)
  Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting requests<3.0.0,>=2.18.4 (from csv2ofx==0.30.0)
  Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting chardet<4.0.0,>=3.0.4 (from meza<0.47.0,>=0.46.0->csv2ofx==0.30.0)
  Using cached chardet-3.0.4-py2.py3-none-any.whl (133 kB)
Collecting python-slugify<2.0.0,>=1.2.5 (from meza<0.47.0,>=0.46.0->csv2ofx==0.30.0)
  Using cached python-slugify-1.2.6.tar.gz (6.8 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting xlrd<2.0.0,>=1.1.0 (from meza<0.47.0,>=0.46.0->csv2ofx==0.30.0)
  Using cached xlrd-1.2.0-py2.py3-none-any.whl (103 kB)
Collecting dbfread==2.0.4 (from meza<0.47.0,>=0.46.0->csv2ofx==0.30.0)
  Using cached dbfread-2.0.4-py2.py3-none-any.whl (19 kB)
Collecting ijson<3.0.0,>=2.3 (from meza<0.47.0,>=0.46.0->csv2ofx==0.30.0)
  Using cached ijson-2.6.1.tar.gz (29 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting beautifulsoup4<5.0.0,>=4.6.0 (from meza<0.47.0,>=0.46.0->csv2ofx==0.30.0)
  Using cached beautifulsoup4-4.12.3-py3-none-any.whl.metadata (3.8 kB)
Collecting PyYAML<6.0.0,>=4.2b1 (from meza<0.47.0,>=0.46.0->csv2ofx==0.30.0)
  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 "/opt/homebrew/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/opt/homebrew/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 "/opt/homebrew/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 "/private/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-build-env-idreswjh/overlay/lib/python3.12/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/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-build-env-idreswjh/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
          self.run_setup()
        File "/private/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-build-env-idreswjh/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 311, in run_setup
          exec(code, locals())
        File "<string>", line 271, in <module>
        File "/private/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-build-env-idreswjh/overlay/lib/python3.12/site-packages/setuptools/__init__.py", line 103, in setup
          return distutils.core.setup(**attrs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/private/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-build-env-idreswjh/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
                 ^^^^^^^^^^^^^^^^^^
        File "/private/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-build-env-idreswjh/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/private/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-build-env-idreswjh/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "/private/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-build-env-idreswjh/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 963, in run_command
          super().run_command(command)
        File "/private/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-build-env-idreswjh/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/private/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-build-env-idreswjh/overlay/lib/python3.12/site-packages/setuptools/command/egg_info.py", line 321, in run
          self.find_sources()
        File "/private/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-build-env-idreswjh/overlay/lib/python3.12/site-packages/setuptools/command/egg_info.py", line 329, in find_sources
          mm.run()
        File "/private/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-build-env-idreswjh/overlay/lib/python3.12/site-packages/setuptools/command/egg_info.py", line 551, in run
          self.add_defaults()
        File "/private/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-build-env-idreswjh/overlay/lib/python3.12/site-packages/setuptools/command/egg_info.py", line 589, in add_defaults
          sdist.add_defaults(self)
        File "/private/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-build-env-idreswjh/overlay/lib/python3.12/site-packages/setuptools/command/sdist.py", line 112, in add_defaults
          super().add_defaults()
        File "/private/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-build-env-idreswjh/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/sdist.py", line 251, in add_defaults
          self._add_defaults_ext()
        File "/private/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-build-env-idreswjh/overlay/lib/python3.12/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/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-build-env-idreswjh/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.
Traceback (most recent call last):
  File "/opt/homebrew/bin/pip-run", line 8, in <module>
    sys.exit(run())
             ^^^^^
  File "/opt/homebrew/lib/python3.12/site-packages/pip_run/__init__.py", line 13, in run
    with deps.load(*deps.not_installed(pip_args)) as home:
  File "/opt/homebrew/Cellar/python@3.12/3.12.1_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/contextlib.py", line 137, in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
  File "/opt/homebrew/lib/python3.12/site-packages/pip_run/deps.py", line 100, in load
    subprocess.check_call(cmd, env=env)
  File "/opt/homebrew/Cellar/python@3.12/3.12.1_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/subprocess.py", line 413, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '('/opt/homebrew/opt/python@3.12/bin/python3.12', '-m', 'pip', 'install', '-t', PosixPath('/var/folders/k6/291pf0kd0fj91pb9yb45gbj40000gn/T/pip-run-ojr36_va'), '-v', 'git+https://github.com/reubano/csv2ofx')' returned non-zero exit status 1.

Same problem happens on Python 3.8-3.11.

@jaraco
Copy link
Collaborator Author

jaraco commented Jan 27, 2024

The underlying cause seems to be: yaml/pyyaml#601

PyYAML 6 does install from source, however, so probably the best course for csv2ofx is not to pin to old PyYAML.

@jaraco
Copy link
Collaborator Author

jaraco commented Jan 27, 2024

The PyYAML<6 dependency comes from meza<0.47. The latest version of meza also relies on PyYAML<6 :(

@reubano
Copy link
Owner

reubano commented Jan 31, 2024

@jaraco you are a meza contributor now so I'd be happy if you were able to fix the underlying issue as well. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants