pypa/trove-classifiers

Installes as version 0.0.0? How to install correctly

SebTV opened this issue · 4 comments

I am installing trove-classifiers as dependency for poetry.
However: trove-classifiers is not found after installation (every other package I tried is found).
What puzzles me, is the version 0.0.0

This is python 3.12.2 for Linux x86_64 amd

ERROR: Could not find a version that satisfies the requirement trove-classifiers>=2022.5.19 (from poetry) (from versions: none)
ERROR: No matching distribution found for trove-classifiers>=2022.5.19
Processing /home/python/trove-classifiers/trove-classifiers-2023.11.29.tar.gz

Running command Preparing metadata (pyproject.toml)
  /pkg/python/x86_64-pc-linux-gnu/lib/python3.12/site-packages/setuptools/_distutils/dist.py:266: UserWarning: Unknown distribution option: 'use_calver'
    warnings.warn(msg)
  running dist_info
  creating /tmp/pip-modern-metadata-rw8t16dd/trove_classifiers.egg-info
  writing /tmp/pip-modern-metadata-rw8t16dd/trove_classifiers.egg-info/PKG-INFO
  writing dependency_links to /tmp/pip-modern-metadata-rw8t16dd/trove_classifiers.egg-info/dependency_links.txt
  writing top-level names to /tmp/pip-modern-metadata-rw8t16dd/trove_classifiers.egg-info/top_level.txt
  writing manifest file '/tmp/pip-modern-metadata-rw8t16dd/trove_classifiers.egg-info/SOURCES.txt'
  listing git files failed - pretending there aren't any
  reading manifest file '/tmp/pip-modern-metadata-rw8t16dd/trove_classifiers.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  adding license file 'LICENSE'
  writing manifest file '/tmp/pip-modern-metadata-rw8t16dd/trove_classifiers.egg-info/SOURCES.txt'
  creating '/tmp/pip-modern-metadata-rw8t16dd/trove_classifiers-0.0.0.dist-info'
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: trove-classifiers
  Running command Building wheel for trove-classifiers (pyproject.toml)
  /pkg/python/x86_64-pc-linux-gnu/lib/python3.12/site-packages/setuptools/_distutils/dist.py:266: UserWarning: Unknown distribution option: 'use_calver'
    warnings.warn(msg)
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib
  creating build/lib/trove_classifiers
  copying src/trove_classifiers/__main__.py -> build/lib/trove_classifiers
  copying src/trove_classifiers/__init__.py -> build/lib/trove_classifiers
  copying src/trove_classifiers/py.typed -> build/lib/trove_classifiers
  installing to build/bdist.linux-x86_64/wheel
  running install
  running install_lib
  creating build/bdist.linux-x86_64
  creating build/bdist.linux-x86_64/wheel
  creating build/bdist.linux-x86_64/wheel/trove_classifiers
  copying build/lib/trove_classifiers/__main__.py -> build/bdist.linux-x86_64/wheel/trove_classifiers
  copying build/lib/trove_classifiers/__init__.py -> build/bdist.linux-x86_64/wheel/trove_classifiers
  copying build/lib/trove_classifiers/py.typed -> build/bdist.linux-x86_64/wheel/trove_classifiers
  running install_egg_info
  running egg_info
  writing src/trove_classifiers.egg-info/PKG-INFO
  writing dependency_links to src/trove_classifiers.egg-info/dependency_links.txt
  writing top-level names to src/trove_classifiers.egg-info/top_level.txt
  listing git files failed - pretending there aren't any
  reading manifest file 'src/trove_classifiers.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  adding license file 'LICENSE'
  writing manifest file 'src/trove_classifiers.egg-info/SOURCES.txt'
  Copying src/trove_classifiers.egg-info to build/bdist.linux-x86_64/wheel/trove_classifiers-0.0.0-py3.12.egg-info
  running install_scripts
  creating build/bdist.linux-x86_64/wheel/trove_classifiers-0.0.0.dist-info/WHEEL
  creating '/tmp/pip-wheel-rwlj8w02/.tmp-ib17itev/trove_classifiers-0.0.0-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
  adding 'trove_classifiers/__init__.py'
  adding 'trove_classifiers/__main__.py'
  adding 'trove_classifiers/py.typed'
  adding 'trove_classifiers-0.0.0.dist-info/LICENSE'
  adding 'trove_classifiers-0.0.0.dist-info/METADATA'
  adding 'trove_classifiers-0.0.0.dist-info/WHEEL'
  adding 'trove_classifiers-0.0.0.dist-info/top_level.txt'
  adding 'trove_classifiers-0.0.0.dist-info/RECORD'
  removing build/bdist.linux-x86_64/wheel
  Building wheel for trove-classifiers (pyproject.toml) ... done
  Created wheel for trove-classifiers: filename=trove_classifiers-0.0.0-py3-none-any.whl size=13260 sha256=7e36aaf76a49bd05388a8cbf225cafe4766c145392c6024b4584cda74c505a2e

./x86_64-pc-linux-gnu/bin/python3 -m pip -v list|grep trove
trove-classifiers 0.0.0 /pkg/python/x86_64-pc-linux-gnu/lib/python3.12/site-packages pip

Installing https://pypi.org/project/calver/ before trove_classifiers fixess it.
trove-classifiers 2024.7.2 /pkg/python/x86_64-pc-linux-gnu/lib/python3.12/site-packages pip

di commented

The project declares a build-time requirement on calver so it should already be getting installed:

[build-system]
requires = ["setuptools", "calver"]
build-backend = "setuptools.build_meta"

How are you installing the file? It's not clear to me from your output what command you are running.

My command was something like pip -v install --no-build-isolation python/trove-classifiers/trove_classifiers-2024.7.2.tar.gz
I don't have the shell-history anymore, but if you are saying that the dependencies are correct (and enforcing), then the best explanation would be, that some --no-deps has sneaked in from attempts to install other packages? I needed --no-deps for at least one (unrelated) package that day in the same shell.

di commented

https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-no-build-isolation says:

Disable isolation when building a modern source distribution. Build dependencies specified by PEP 518 must be already installed if this option is used.

Therefore, it would be expected that this would happen if build dependencies weren't already installed.