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

Installation failure on Python 3.9.5 (RHEL 8.8, fresh environment) #11

Open
warrickball opened this issue Sep 12, 2024 · 12 comments
Open
Assignees
Labels
bug Something isn't working

Comments

@warrickball
Copy link
Contributor

warrickball commented Sep 12, 2024

To test the installation process, I just created a fresh Python 3.9.5 environment and ran

$ pip install git+https://github.com/athob/py-ananke@main

which eventually errored out with

Collecting git+https://github.com/athob/py-ananke@main
  Cloning https://github.com/athob/py-ananke (to revision main) to /tmp/pip-req-build-_v05__rf
  Running command git clone -q https://github.com/athob/py-ananke /tmp/pip-req-build-_v05__rf
  Running command git submodule update --init --recursive -q
Checking submodules, running git... Processing /tmp/pip-req-build-_v05__rf/py-EnBiD-ananke
  DEPRECATION: A future pip version will change local packages to be built in-place without first copying to a temporary directory. We recommend you use --use-feature=in-tree-build to test your packages with this new behavior before it becomes the default.
   pip 21.3 will remove support for this functionality. You can find discussion regarding this at https://github.com/pypa/pip/issues/7555.
    ERROR: Command errored out with exit status 1:
     command: /rds/homes/b/ballwh/work/pyananke/bin/python3 -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-l0t1_g7z/enbid-ananke_032fa6dcedae4d11a75fa62510bcd565/setup.py'"'"'; __file__='"'"'/tmp/pip-install-l0t1_g7z/enbid-ananke_032fa6dcedae4d11a75fa62510bcd565/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-j8latto8
         cwd: /tmp/pip-install-l0t1_g7z/enbid-ananke_032fa6dcedae4d11a75fa62510bcd565/
    Complete output (7 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-l0t1_g7z/enbid-ananke_032fa6dcedae4d11a75fa62510bcd565/setup.py", line 7, in <module>
        from src.__metadata__ import *
      File "/tmp/pip-install-l0t1_g7z/enbid-ananke_032fa6dcedae4d11a75fa62510bcd565/src/__metadata__.py", line 38, in <module>
        __date__: datetime = datetime.fromisoformat(f"{__date__[:-2]}:{__date__[-2:]}")
    TypeError: 'NoneType' object is not subscriptable
    ----------------------------------------
WARNING: Discarding file:///tmp/pip-req-build-_v05__rf/py-EnBiD-ananke. Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

My guess is that this is coming up because the function get_versions in py-EnBiD-ananke (though I think the same function is used in py-ananke and py-Galaxia-ananke) is returning one of the dictionaries with date = None.

This is RHEL 8.8. pip freeze returns nothing, presumably because I'm in a fresh virtual environment.

Related to openjournals/joss-reviews#6234.

@athob athob self-assigned this Sep 15, 2024
@athob athob added the bug Something isn't working label Sep 15, 2024
@warrickball
Copy link
Contributor Author

Sorry to push but I was wondering if there'd been any progress on this? I know we're waiting for the JOSS review to finish up but if we can resolve this now it'll speed things up once the reviewers are ready to accept.

@athob
Copy link
Owner

athob commented Sep 30, 2024

Thanks for pushing, I wasn't able to look into it at this time, but I do want to address it promptly. I do expect being able to this Wednesday, but I'll try looking into it before too. I am not familiar with RHEL 8.8, but I'll see if I can reproduce the error.

@athob
Copy link
Owner

athob commented Oct 1, 2024

I was able to reproduce the error in a RHEL 8.10 docker container. After setting up a minimalist python version installation (no conda, just python 3.9 with a pip installer), I ended up with the same error. After doing a few tests, I saw that the pip I got installed was version 20.2.4, so I tried upgrading it to its latest version (24.2 through pip). After completing the upgrade, I was able to pip install py-ananke without that error.

I have yet to test any version of pip in between, but could you let me know what version of pip are you running for now?

@warrickball
Copy link
Contributor Author

warrickball commented Oct 1, 2024

I was using pip version 21.1.1, I think inherited from our OS installation (possibly including that I loaded Python 3.9.5 via Environment Modules). I tried creating a fresh virtual environment (still using the Python 3.9.5 module), upgrading pip to 24.2 and installing py-ananke again and I got to build errors in Enbid and Galaxia. I've appended the full output below but I think the key lines are that they get to are

building '' extension
gcc -shared -L<very long list of library paths because of modules> -o build/lib.linux-x86_64-cpython-39/.cpython-39-x86_64-linux-gnu.so
gcc: fatal error: no input files
compilation terminated.
error: command '/rds/bear-apps/2021a/EL8-ice/software/GCCcore/10.3.0/bin/gcc' failed with exit code 1

for both. I'm guessing there should be a list of source files in there that for some reason is coming up empty.

More error output
Building wheels for collected packages: ananke, EnBiD-ananke, Galaxia-ananke                                             
  Building wheel for ananke (pyproject.toml) ...                                                                       
Checking submodules, running git... done                                                                                
  Created wheel for ananke: filename=ananke-0.2.0b3-py3-none-any.whl size=56751 sha256=4a26ce03c3486b3c41c19d29d8341fcaa7c2242cad204e5ba92d93ef60d70d37
  Stored in directory: /tmp/pip-ephem-wheel-cache-vm_l7osh/wheels/6d/55/b2/a3c3c77d39b8afff99b8f831ac46f242e6f930412587426a4b
  Building wheel for EnBiD-ananke (pyproject.toml) ...
Downloading Enbid -
Unpacking Enbid|
Compiling Enbid
        Configuring
        Running make/
error
  error: subprocess-exited-with-error

  × Building wheel for EnBiD-ananke (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [138 lines of output]
     
      Downloading Enbid
      Unpacking Enbid
      Compiling Enbid
          Configuring
          Running make
       Warning: 'classifiers' should be a list, got type 'tuple'
      /tmp/pip-build-env-c6wiibpi/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'copyright'
        warnings.warn(msg)
      running bdist_wheel
      running build
      running build_py
      creating build/lib.linux-x86_64-cpython-39/EnBiD_ananke
      copying src/EnBiD_ananke/__init__.py -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke
      copying src/EnBiD_ananke/__metadata__.py -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke
      copying src/EnBiD_ananke/_builtin_utils.py -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke
      copying src/EnBiD_ananke/_constants.py -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke
      copying src/EnBiD_ananke/_defaults.py -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke
      copying src/EnBiD_ananke/_templates.py -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke
      copying src/EnBiD_ananke/_version.py -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke
      copying src/EnBiD_ananke/utils.py -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke
      running egg_info
      writing src/EnBiD_ananke.egg-info/PKG-INFO
      writing dependency_links to src/EnBiD_ananke.egg-info/dependency_links.txt
      writing requirements to src/EnBiD_ananke.egg-info/requires.txt
      writing top-level names to src/EnBiD_ananke.egg-info/top_level.txt
      reading manifest file 'src/EnBiD_ananke.egg-info/SOURCES.txt'
      adding license file 'LICENSE'
      writing manifest file 'src/EnBiD_ananke.egg-info/SOURCES.txt'
      /tmp/pip-build-env-c6wiibpi/overlay/lib/python3.9/site-packages/setuptools/command/build_py.py:218: _Warning: Package 'EnBiD_ananke.__license__' is absent from the `packages` configuration.
      !!
     
              ********************************************************************************
              ############################
              # Package would be ignored #
              ############################
              Python recognizes 'EnBiD_ananke.__license__' 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 'EnBiD_ananke.__license__' 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 'EnBiD_ananke.__license__' to be distributed and are
              already explicitly excluding 'EnBiD_ananke.__license__' 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)
      creating build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0
      copying src/EnBiD_ananke/Enbid-2.0/.DS_Store -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0
      copying src/EnBiD_ananke/Enbid-2.0/COPYING -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0
      copying src/EnBiD_ananke/Enbid-2.0/COPYRIGHT -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0
      copying src/EnBiD_ananke/Enbid-2.0/Enbid -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0
      copying src/EnBiD_ananke/Enbid-2.0/periodic_lengths.txt -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0
      creating build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/Documentation
      copying src/EnBiD_ananke/Enbid-2.0/Documentation/enbid.pdf -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/Documentation
      copying src/EnBiD_ananke/Enbid-2.0/Documentation/users-guide.pdf -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/Documentation
      copying src/EnBiD_ananke/Enbid-2.0/Documentation/users-guide.tex -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/Documentation
      copying src/EnBiD_ananke/Enbid-2.0/Documentation/users-guide.tex.flc -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/Documentation
      creating build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/Examples/hernquist1_small
      copying src/EnBiD_ananke/Enbid-2.0/Examples/hernquist1_small/snapshot_ici -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/Examples/hernquist1_small
      copying src/EnBiD_ananke/Enbid-2.0/Examples/hernquist1_small/snapshot_ici_typelist -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/Examples/hernquist1_small
      creating build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/Examples/uniform_6d_box_4
      copying src/EnBiD_ananke/Enbid-2.0/Examples/uniform_6d_box_4/snapshot_ici -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/Examples/uniform_6d_box_4
      copying src/EnBiD_ananke/Enbid-2.0/Examples/uniform_6d_box_4/snapshot_ici_3d.ascii -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/Examples/uniform_6d_box_4
      copying src/EnBiD_ananke/Enbid-2.0/Examples/uniform_6d_box_4/snapshot_ici_6d.ascii -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/Examples/uniform_6d_box_4
      creating build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/parameterfiles
      copying src/EnBiD_ananke/Enbid-2.0/parameterfiles/myparameterfile1 -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/parameterfiles
      copying src/EnBiD_ananke/Enbid-2.0/parameterfiles/myparameterfile2 -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/parameterfiles
      copying src/EnBiD_ananke/Enbid-2.0/parameterfiles/myparameterfile3 -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/parameterfiles
      copying src/EnBiD_ananke/Enbid-2.0/parameterfiles/myparameterfile4 -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/parameterfiles
      creating build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src                                                                                                                                                                         [115/1692]
      copying src/EnBiD_ananke/Enbid-2.0/src/Makefile -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/allocate.cpp -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/allocate.o -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/allvars.cpp -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/allvars.h -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/allvars.o -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/begrun.cpp -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/begrun.o -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/density_nd.cpp -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/density_nd.o -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/functions.cpp -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/functions.h -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/functions.o -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/init.cpp -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/init.o -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/io.cpp -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/io.o -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/main.cpp -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/main.o -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/ngb_search.cpp -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/ngb_search.h -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/ngb_search.o -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/nr.cpp -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/nr.h -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/nr.o -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/proto.h -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/read_ic.cpp -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/read_ic.o -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/tree.cpp -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/tree.h -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/tree.o -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/tree_search.cpp -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      copying src/EnBiD_ananke/Enbid-2.0/src/tree_search.o -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/Enbid-2.0/src
      creating build/lib.linux-x86_64-cpython-39/EnBiD_ananke/__license__
      copying src/EnBiD_ananke/__license__/LICENSE -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/__license__
      copying src/EnBiD_ananke/__license__/__init__.py -> build/lib.linux-x86_64-cpython-39/EnBiD_ananke/__license__
      UPDATING build/lib.linux-x86_64-cpython-39/EnBiD_ananke/_version.py
      set build/lib.linux-x86_64-cpython-39/EnBiD_ananke/_version.py to '0.2.0b3'
      running build_ext
      building '' extension
      gcc -shared -L/rds/bear-apps/2021a/EL8-ice/software/OpenSSL/1.1/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/OpenSSL/1.1/lib -L/rds/bear-apps/2021a/EL8-ice/software/libffi/3.3-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/libffi/3.3
-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/GMP/6.2.1-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/GMP/6.2.1-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/XZ/5.2.5-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/E
L8-ice/software/XZ/5.2.5-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/SQLite/3.35.4-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/SQLite/3.35.4-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/ncurses/6.2-GCCcore-10
.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/ncurses/6.2-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/libreadline/8.1-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/libreadline/8.1-GCCcore-10.3.0/lib -L/rds/bear-apps/202
1a/EL8-ice/software/zlib/1.2.11-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/zlib/1.2.11-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/bzip2/1.0.8-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/bzip2/1.0.8-GCCco
re-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/binutils/2.36.1-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/binutils/2.36.1-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/Rust/1.52.1-GCCcore-10.3.0/lib64 -L/rds/bear-app
s/2021a/EL8-ice/software/Rust/1.52.1-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/GCCcore/10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/GCCcore/10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/OpenSSL/1.1/lib64 -L/rds/bear-apps/202
1a/EL8-ice/software/OpenSSL/1.1/lib -L/rds/bear-apps/2021a/EL8-ice/software/libffi/3.3-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/libffi/3.3-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/GMP/6.2.1-GCCcore-10.3.0/lib64 -L/rd
s/bear-apps/2021a/EL8-ice/software/GMP/6.2.1-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/XZ/5.2.5-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/XZ/5.2.5-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/SQLite/3.35.
4-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/SQLite/3.35.4-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/ncurses/6.2-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/ncurses/6.2-GCCcore-10.3.0/lib -L/rds/bear-ap
ps/2021a/EL8-ice/software/libreadline/8.1-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/libreadline/8.1-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/zlib/1.2.11-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/zli
b/1.2.11-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/bzip2/1.0.8-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/bzip2/1.0.8-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/binutils/2.36.1-GCCcore-10.3.0/lib64 -L/rd
s/bear-apps/2021a/EL8-ice/software/binutils/2.36.1-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/Rust/1.52.1-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/Rust/1.52.1-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/
GCCcore/10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/GCCcore/10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/Python/3.9.5-GCCcore-10.3.0/lib -o build/lib.linux-x86_64-cpython-39/.cpython-39-x86_64-linux-gnu.so
      gcc: fatal error: no input files
      compilation terminated.
      error: command '/rds/bear-apps/2021a/EL8-ice/software/GCCcore/10.3.0/bin/gcc' failed with exit code 1
      [end of output]                                                                                                                                                                                                                                         

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for EnBiD-ananke
  Building wheel for Galaxia-ananke (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for Galaxia-ananke (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [84 lines of output]
      Warning: 'classifiers' should be a list, got type 'tuple'
      running bdist_wheel
      running build
      running build_py
      creating build/lib.linux-x86_64-cpython-39/Galaxia_ananke
      copying src/Galaxia_ananke/Input.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke
      copying src/Galaxia_ananke/Output.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke
      copying src/Galaxia_ananke/Survey.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke
      copying src/Galaxia_ananke/__init__.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke
      copying src/Galaxia_ananke/__metadata__.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke
      copying src/Galaxia_ananke/_builtin_utils.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke
      copying src/Galaxia_ananke/_constants.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke
      copying src/Galaxia_ananke/_defaults.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke
      copying src/Galaxia_ananke/_templates.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke
      copying src/Galaxia_ananke/_version.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke
      copying src/Galaxia_ananke/utils.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke
      creating build/lib.linux-x86_64-cpython-39/Galaxia_ananke/photometry
      copying src/Galaxia_ananke/photometry/InterfaceSvoFpsDriver.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke/photometry
      copying src/Galaxia_ananke/photometry/Isochrone.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke/photometry
      copying src/Galaxia_ananke/photometry/IsochroneFile.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke/photometry
      copying src/Galaxia_ananke/photometry/PhotoSystem.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke/photometry
      copying src/Galaxia_ananke/photometry/Photometry.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke/photometry
      copying src/Galaxia_ananke/photometry/SvoFpsDriver.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke/photometry
      copying src/Galaxia_ananke/photometry/__init__.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke/photometry
      running egg_info
      writing src/Galaxia_ananke.egg-info/PKG-INFO
      writing dependency_links to src/Galaxia_ananke.egg-info/dependency_links.txt
      writing requirements to src/Galaxia_ananke.egg-info/requires.txt
      writing top-level names to src/Galaxia_ananke.egg-info/top_level.txt
      reading manifest file 'src/Galaxia_ananke.egg-info/SOURCES.txt'
      adding license file 'LICENSE'
      writing manifest file 'src/Galaxia_ananke.egg-info/SOURCES.txt'
      /tmp/pip-build-env-l_im4jv1/overlay/lib/python3.9/site-packages/setuptools/command/build_py.py:218: _Warning: Package 'Galaxia_ananke.__license__' is absent from the `packages` configuration.
      !!
     
              ********************************************************************************
              ############################
              # Package would be ignored #
              ############################
              Python recognizes 'Galaxia_ananke.__license__' 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 'Galaxia_ananke.__license__' 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 'Galaxia_ananke.__license__' to be distributed and are
              already explicitly excluding 'Galaxia_ananke.__license__' 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)
      creating build/lib.linux-x86_64-cpython-39/Galaxia_ananke/__license__
      copying src/Galaxia_ananke/__license__/LICENSE -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke/__license__
      copying src/Galaxia_ananke/__license__/__init__.py -> build/lib.linux-x86_64-cpython-39/Galaxia_ananke/__license__
      UPDATING build/lib.linux-x86_64-cpython-39/Galaxia_ananke/_version.py
      set build/lib.linux-x86_64-cpython-39/Galaxia_ananke/_version.py to '0.4.0b3'
      running build_ext
      building '' extension
      gcc -shared -L/rds/bear-apps/2021a/EL8-ice/software/OpenSSL/1.1/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/OpenSSL/1.1/lib -L/rds/bear-apps/2021a/EL8-ice/software/libffi/3.3-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/libffi/3.3
-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/GMP/6.2.1-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/GMP/6.2.1-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/XZ/5.2.5-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/E
L8-ice/software/XZ/5.2.5-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/SQLite/3.35.4-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/SQLite/3.35.4-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/ncurses/6.2-GCCcore-10
.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/ncurses/6.2-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/libreadline/8.1-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/libreadline/8.1-GCCcore-10.3.0/lib -L/rds/bear-apps/202
1a/EL8-ice/software/zlib/1.2.11-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/zlib/1.2.11-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/bzip2/1.0.8-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/bzip2/1.0.8-GCCco
re-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/binutils/2.36.1-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/binutils/2.36.1-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/Rust/1.52.1-GCCcore-10.3.0/lib64 -L/rds/bear-app
s/2021a/EL8-ice/software/Rust/1.52.1-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/GCCcore/10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/GCCcore/10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/OpenSSL/1.1/lib64 -L/rds/bear-apps/202
1a/EL8-ice/software/OpenSSL/1.1/lib -L/rds/bear-apps/2021a/EL8-ice/software/libffi/3.3-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/libffi/3.3-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/GMP/6.2.1-GCCcore-10.3.0/lib64 -L/rd
s/bear-apps/2021a/EL8-ice/software/GMP/6.2.1-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/XZ/5.2.5-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/XZ/5.2.5-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/SQLite/3.35.
4-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/SQLite/3.35.4-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/ncurses/6.2-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/ncurses/6.2-GCCcore-10.3.0/lib -L/rds/bear-ap
ps/2021a/EL8-ice/software/libreadline/8.1-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/libreadline/8.1-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/zlib/1.2.11-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/zli
b/1.2.11-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/bzip2/1.0.8-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/bzip2/1.0.8-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/binutils/2.36.1-GCCcore-10.3.0/lib64 -L/rd
s/bear-apps/2021a/EL8-ice/software/binutils/2.36.1-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/Rust/1.52.1-GCCcore-10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/Rust/1.52.1-GCCcore-10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/
GCCcore/10.3.0/lib64 -L/rds/bear-apps/2021a/EL8-ice/software/GCCcore/10.3.0/lib -L/rds/bear-apps/2021a/EL8-ice/software/Python/3.9.5-GCCcore-10.3.0/lib -o build/lib.linux-x86_64-cpython-39/.cpython-39-x86_64-linux-gnu.so
      gcc: fatal error: no input files
      compilation terminated.
      error: command '/rds/bear-apps/2021a/EL8-ice/software/GCCcore/10.3.0/bin/gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for Galaxia-ananke
Successfully built ananke
Failed to build EnBiD-ananke Galaxia-ananke
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (EnBiD-ananke, Galaxia-ananke)

@athob
Copy link
Owner

athob commented Oct 1, 2024

I'm not finding a way to reproduce that error. I first thought it was due to gcc being version 10, but it installs alright with gcc v8 in my RHEL docker image (note it's actually RHEL 8.10, I haven't found a way to get a 8.8 image running - I'm also struggling to get module installed in it, so I'm relying on the minimalist python installation).

I guess you installed using the recommended pip install git+https://github.com/athob/py-ananke@main command, would you be okay trying to clone the repository manually first and then run pip install . from the main branch? I would like to know notably if pip does update the submodules appropriately (I believe it does because it does show that it is copying the corresponding source files), but also if the failure happens in that situation too.

@warrickball
Copy link
Contributor Author

I originally install using pip install git+https://github.com/athob/py-ananke@main. I just tried to clone the repo and install with pip install . but get the same error. I'll have a go with my local machine (running Fedora 40) and see how it goes.

@warrickball
Copy link
Contributor Author

For some reason it tried to build SciPy from source, so once I installed SciPy's system-level dependencies, I progressed to the message I now remember seeing, which is that enbid-ananke requires Python<3.12.

@athob
Copy link
Owner

athob commented Oct 3, 2024

The Python requirement under 3.12 is intentional at the moment, but I hope to revise it soon. To clarify, that last comment was from your installation attempt in your local machine running Fedora 40?

@warrickball
Copy link
Contributor Author

Sorry, yes, the local install failed purely because Fedora 40 has Python 3.12. I also hope to circle back to debugging the Python 3.9 build on my University cluster. (I'll comment on the JOSS review in that thread.)

@warrickball
Copy link
Contributor Author

warrickball commented Oct 5, 2024

I spent some time dabbling with py-EnBiD-ananke in isolation, finding that python3 setup.py build_ext was enough to reproduce the error. I'm not used to building C/C++ extensions in Python packages but by grafting some print statements into the ext_modules=... part of setup(...), it looks like the failing step is running at a time when EnBiD itself hasn't been downloaded, which might be why gcc doesn't find any files. I'm not sure if this is because each step of the installation (there seem to be at least 3) is running in an independent temporary folder.

What I did find is that if I simply commented out the ext_modules=... line of setup.py, I could install py-EnBiD-ananke and reproduce everything in the testing notebook.

I'll try to return to this tomorrow to see if I can safely comment out ext_modules=... in py-Galaxia-ananke too, and then build py-ananke without issue.

@athob
Copy link
Owner

athob commented Oct 5, 2024

Thanks for looking into it. I'll try to test that out on my end too.

The ext_modules usage had been in my setup implementation ever since I started developing the wrapper. I had taken it directly from adapting the setup installation of a package I was told was also wrapping C++ source code. Back then I had played around the code, trying to remove the unnecessary and keeping the potentially necessary, to get the wrapping functionality started. But now, I can't remember why I kept that usage.

@warrickball
Copy link
Contributor Author

Though I'll leave this open, it's peculiar enough to my particular machines that I'm going to press on with the JOSS post-review process but I'll try to chip away at this and ask some colleagues and collaborators if they've ever run into anything similar. I noticed I had setuptools v56.0.0 but upgrading to v75.1.0 didn't help.

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

When branches are created from issues, their pull requests are automatically linked.

2 participants