poetry: Can't use private repository in `poetry add`
Poetry version: 0.10.3 Python Version: 3.6.5
(Note: I redacted URL of my private repository)
pyproject.toml:
[tool.poetry]
name = "project"
version = "0.1.0"
description = ""
authors = []
[[tool.poetry.source]]
name = "private"
url = "<url>"
[tool.poetry.dependencies]
python = "^3.6"
[tool.poetry.dev-dependencies]
pytest = "^3.5"
I ran the following two commands:
poetry config repositories.private <url>
poetry config http-basic.private <username>
Checking the config files on disk, the values are correct.
When I run poetry search <private package>
or poetry add <private package>
poetry cannot find the package. Here’s the output of poetry -vvv add
:
poetry -vvv add <private package>
[ValueError]
Package [<private package>] not found.
Exception trace:
/usr/local/lib/python3.6/site-packages/poetry/_vendor/cleo/application.py in run() at line 94
status_code = self.do_run(input_, output_)
/usr/local/lib/python3.6/site-packages/poetry/console/application.py in do_run() at line 87
return super(Application, self).do_run(i, o)
/usr/local/lib/python3.6/site-packages/poetry/_vendor/cleo/application.py in do_run() at line 197
status_code = command.run(input_, output_)
/usr/local/lib/python3.6/site-packages/poetry/console/commands/command.py in run() at line 72
return super(BaseCommand, self).run(i, o)
/usr/local/lib/python3.6/site-packages/poetry/_vendor/cleo/commands/base_command.py in run() at line 146
status_code = self.execute(input_, output_)
/usr/local/lib/python3.6/site-packages/poetry/_vendor/cleo/commands/command.py in execute() at line 107
return self.handle()
/usr/local/lib/python3.6/site-packages/poetry/console/commands/add.py in handle() at line 65
packages, allow_prereleases=self.option("allow-prereleases")
/usr/local/lib/python3.6/site-packages/poetry/console/commands/init.py in _determine_requirements() at line 215
requirement["name"], allow_prereleases=allow_prereleases
/usr/local/lib/python3.6/site-packages/poetry/console/commands/init.py in _find_best_version_for_package() at line 245
name, required_version, allow_prereleases=allow_prereleases
/usr/local/lib/python3.6/site-packages/poetry/version/version_selector.py in find_best_candidate() at line 28
package_name, constraint, allow_prereleases=allow_prereleases
/usr/local/lib/python3.6/site-packages/poetry/repositories/pool.py in find_packages() at line 83
name, constraint, extras=extras, allow_prereleases=allow_prereleases
/usr/local/lib/python3.6/site-packages/poetry/repositories/pypi_repository.py in find_packages() at line 90
info = self.get_package_info(name)
/usr/local/lib/python3.6/site-packages/poetry/repositories/pypi_repository.py in get_package_info() at line 225
name, lambda: self._get_package_info(name)
/usr/local/lib/python3.6/site-packages/poetry/_vendor/cachy/repository.py in remember_forever() at line 174
val = value(callback)
/usr/local/lib/python3.6/site-packages/poetry/_vendor/cachy/helpers.py in value() at line 6
return val()
/usr/local/lib/python3.6/site-packages/poetry/repositories/pypi_repository.py in <lambda>() at line 225
name, lambda: self._get_package_info(name)
/usr/local/lib/python3.6/site-packages/poetry/repositories/pypi_repository.py in _get_package_info() at line 231
raise ValueError("Package [{}] not found.".format(name))
add [-D|--dev] [--git GIT] [--path PATH] [-E|--extras EXTRAS] [--optional] [--python PYTHON] [--platform PLATFORM] [--allow-prereleases] [--dry-run] [--] <name> (<name>)...
We use pypicloud for our private repository.
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Reactions: 6
- Comments: 22 (9 by maintainers)
Commits related to this issue
- Adding support for HTTP Basic Auth when installing and searching from legacy repo (#233) (#306) * Adding support for HTTP Basic Auth when pulling from legacy repo * added docs * Adding unit tes... — committed to python-poetry/poetry by MarcDufresne 6 years ago
- Adding support for HTTP Basic Auth when installing and searching from legacy repo (#233) (#306) * Adding support for HTTP Basic Auth when pulling from legacy repo * added docs * Adding unit tes... — committed to python-poetry/poetry by MarcDufresne 6 years ago
- Force type hints (#233) * change type annotations to type hints using com2ann * add missing type hints to core * add type hints to tests * add missing type hints to stanza * add flake8-an... — committed to dimbleby/poetry by finswimmer 3 years ago
Why is this issue closed?
poetry add
still does not work for packages in private repos. The repo is configured:See also verbose output.
There is no authentication in my repo.
The path from
repositories.my.url
works well withpip install
.I was able to overcome this by adding the package manually into pyproject.toml as well as this section:
Then I deleted poetry.lock and issued
poetry install
. Now I got it in the ‘lock’ file, but this seems too cumbersome.@sdispater should I open a new issue?
P.S. My username, package name and URL are consistently changed into other values.
This issue should be reopened. The problem still happens in poetry 1.0.5.
I have the same problem poetry 1.0.5.
Any news on this? @sdispater?
For those who get the “Could not find a matching version of package <my package>” when trying to install from private repo
Try to add
/simple/
to the url of the repo which you have used inpyproject.toml
:That solved the problem for me with AWS CodeArtifact repository. Curiously, during authentication for publishing while setting the
poetry config repositories.myrepo $URL
andpoetry config http-basic.myrepo $USER $TOKEN
I had to use CodeArtifact url WITHOUT/simple/
at the end.EDIT: I’ve fixed this, by adding
/simple/
to the end of my config repo, and now the debug log actually checks my custom repo. A warning about a bad URL would be very helpful, though.Same issue in
1.0.5
. Debug output indicatespoetry
doesn’t even look at the custom repo:And here’s the project config
The weird part is that I had
poetry
downloading dependencies from our custom PyPI repository, but once I uploaded a package myself, it doesn’t like it.still a source of confusion not mentioned in any docs I could find. @LSaldyt fix worked though.
With version 1.0.0b9 it shows this:
If I add
[[tool.poetry.source]]
in poetry.tomlpoetry add
works. But isn’t it supposed to work right away with all the configured repositories?Edit: I don’t think so because:
have you tried changing if you’re using the
/simple/
index (or some other equivalent), and then toggling the trailing slash? I’ve found that it’s pretty finicky about which url goes where, and after running into your problem it just…fixed itself after a few different urls. (currently using/simple
with no slash)It’d be nice to have some attempted diagnostics (like wrong format vs 404/403 or something).