pypa / trove-classifiers

Canonical source for classifiers on PyPI.
https://pypi.org/p/trove-classifiers/
Apache License 2.0
143 stars 98 forks source link

Installes as version 0.0.0? How to install correctly #186

Closed SebTV closed 2 months ago

SebTV commented 2 months ago

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

SebTV commented 2 months ago

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 2 months ago

The project declares a build-time requirement on calver so it should already be getting installed: https://github.com/pypa/trove-classifiers/blob/57bab905c6d601a907a56a082fc7564550faafb1/pyproject.toml#L1-L3

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

SebTV commented 2 months ago

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 2 months ago

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.