"Unable to find installation candidates" in poetry trying to install `genicam` - how to debug?

28.8k views Asked by At

I have just installed poetry on a windows 10 machine using the new install-poetry.py script. I have just converted my python application dependency management to pyproject.toml with poetry. It works for most of my dependencies, but fails for the genicam package, with the above Unable to find installation candidates error message. Installing that package with pip does work. How do I debug such issues? I tried running poetry install -vvv, but all I get is the same stack-trace of poetry's internals in verbose form, nothing useful added to the output of the short-form (in particular no indexes or urls it tried and failed):

Package operations: 1 install, 0 updates, 0 removals

  • Installing genicam (1.1.0)

  RuntimeError

  Unable to find installation candidates for genicam (1.1.0)

  at ~\AppData\Roaming\pypoetry\venv\lib\site-packages\poetry\installation\chooser.py:72 in choose_for
       68│
       69│             links.append(link)
       70│
       71│         if not links:
    →  72│             raise RuntimeError(
       73│                 "Unable to find installation candidates for {}".format(package)
       74│             )
       75│
       76│         # Get the best link

I'm using poetry version 1.1.13 on python 3.8.10 on windows 10 (python 3.8 is the latest supported by genicam - it's a closed source package managed by the GenICam consortium, and they have a ridiculous release process; somehow they need a committee voting before they can release a new package - end rant).

2

There are 2 answers

0
Flurin Arner On

Similar to Jakob Kristensen's answer (thanks for the pointer), in my case the access tokens had expired. Here's a longer winded answer on how I solved it.


The Access Tokens to the desired repositories had expired:

Poetry saves the authentication method in the poetry.toml file:

  • Update the access tokens with the poetry config http-basic.$SOURCENAME $USERNAME $PASSWORD command.
    • Note: here $SOURCENAME refers to how the source was named in the pyproject.toml file and not to the name of the repository!
  • See the poetry documentation on Configuring Credentials for more information.

If the issue is occurring in Gitlab-CI, you may use poetry config http-basic.$SOURCENAME gitlab-ci-token "${CI_JOB_TOKEN}".

0
Jakob Kristensen On

Had a dependency to a repository using an authentication token which were expired. Updating auth credentials fixed this.