apexpy icon indicating copy to clipboard operation
apexpy copied to clipboard

BUG: Issues installing apexpy in python 3.12

Open ljlamarche opened this issue 8 months ago • 0 comments

Describe the bug

Apexpy fails to install in a new python python 3.12 environment. The traceback (provided in full below) suggests this is the main error

ERROR: Could not build wheels for libcst, which is required to install pyproject.toml-based projects

and it may be related to there not being a Rust compiler available.

To Reproduce

  1. Create new python 3.12 environment
  2. pip install apexpy

Expected behavior

Sucessful installation of apexpy.

Traceback

Full traceback (long): apexpy_traceback.txt Most relevant portion:

            writing libcst.egg-info/PKG-INFO
            writing dependency_links to libcst.egg-info/dependency_links.txt
            writing requirements to libcst.egg-info/requires.txt
            writing top-level names to libcst.egg-info/top_level.txt
            ERROR setuptools_scm._file_finders.git listing git files failed - pretending there aren't any
            reading manifest file 'libcst.egg-info/SOURCES.txt'
            reading manifest template 'MANIFEST.in'
            warning: no previously-included files matching '*' found under directory 'native/target'
            adding license file 'LICENSE'
            writing manifest file 'libcst.egg-info/SOURCES.txt'
            /private/var/folders/yf/c17s54f12c1bg0cxdywsxyxjssh4z4/T/pip-build-env-b976c0mm/overlay/lib/python3.12/site-packages/setuptools/command/build_py.py:215: _Warning: Package 'libcst.tests.pyre' is absent from the `packages` configuration.
            !!
      
                    ********************************************************************************
                    ############################
                    # Package would be ignored #
                    ############################
                    Python recognizes 'libcst.tests.pyre' as an importable package[^1],
                    but it is absent from setuptools' `packages` configuration.
      
                    This leads to an ambiguous overall configuration. If you want to distribute this
                    package, please make sure that 'libcst.tests.pyre' is explicitly added
                    to the `packages` configuration field.
      
                    Alternatively, you can also rely on setuptools' discovery methods
                    (for example by using `find_namespace_packages(...)`/`find_namespace:`
                    instead of `find_packages(...)`/`find:`).
      
                    You can read more about "package discovery" on setuptools documentation page:
      
                    - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html
      
                    If you don't want 'libcst.tests.pyre' to be distributed and are
                    already explicitly excluding 'libcst.tests.pyre' via
                    `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
                    you can try to use `exclude_package_data`, or `include-package-data=False` in
                    combination with a more fine grained `package-data` configuration.
      
                    You can read more about "package data files" on setuptools documentation page:
      
                    - https://setuptools.pypa.io/en/latest/userguide/datafiles.html
      
      
                    [^1]: For Python, any directory (with suitable naming) can be imported,
                          even if it does not contain any `.py` files.
                          On the other hand, currently there is no concept of package data
                          directory, all directories are treated like packages.
                    ********************************************************************************
      
            !!
              check.warn(importable)
            copying libcst/py.typed -> build/lib.macosx-11.0-arm64-cpython-312/libcst
            creating build/lib.macosx-11.0-arm64-cpython-312/libcst/tests/pyre
            copying libcst/tests/pyre/.pyre_configuration -> build/lib.macosx-11.0-arm64-cpython-312/libcst/tests/pyre
            copying libcst/tests/pyre/simple_class.json -> build/lib.macosx-11.0-arm64-cpython-312/libcst/tests/pyre
            copying libcst/tests/pyre/simple_class.py -> build/lib.macosx-11.0-arm64-cpython-312/libcst/tests/pyre
            copying libcst/_parser/conversions/README.md -> build/lib.macosx-11.0-arm64-cpython-312/libcst/_parser/conversions
            copying libcst/codemod/tests/codemod_formatter_error_input.py.txt -> build/lib.macosx-11.0-arm64-cpython-312/libcst/codemod/tests
            running build_ext
            running build_rust
            error: can't find Rust compiler
      
            If you are using an outdated pip version, it is possible a prebuilt wheel is available for this package but pip is not able to install from it. Installing from the wheel would avoid the need for a Rust compiler.
      
            To update pip, run:
      
                pip install --upgrade pip
      
            and then retry package installation.
      
            If you did intend to build this package from source, try installing a Rust compiler from your system package manager and ensure it is on the PATH during installation. Alternatively, rustup (available at https://rustup.rs) is the recommended way to download and update the Rust compiler toolchain.
            [end of output]
      
        note: This error originates from a subprocess, and is likely not a problem with pip.
        ERROR: Failed building wheel for libcst
      Failed to build libcst
      ERROR: Could not build wheels for libcst, which is required to install pyproject.toml-based projects

Computer

  • OS: MacOS 14.2.1
  • Python version: 3.12
  • Compiler with version: gfortran 13.1
  • Apexpy version/branch: 2.0.1/main

ljlamarche avatar Jun 24 '24 19:06 ljlamarche