You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have searched the issues of this repo and believe that this is not a duplicate.
If an exception occurs when executing a command, I executed it again in debug mode (-vvv option).
OS version and name: Ubuntu 20.04
Poetry version: 1.1.5
Issue
I am using poetry to build a wheel for a particular project intended to be installed via pip. One of the project's dependencies is itself a local wheel, so pyproject.toml uses the path specification for that dependency like so:
When I attempt to use pip to install the wheel generated by poetry build, it fails, and pkg_resources complains that the dependency has an invalid URL. For example:
$ pip3 install -t ~/my_dist ./my_project-0.1.0-py3-none-any.whl
Processing ./my_project-0.1.0-py3-none-any.whl
ERROR: Exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3023, in _dep_map
return self.__dep_map
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2817, in __getattr__
raise AttributeError(attr)
AttributeError: _DistInfoDistribution__dep_map
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3103, in __init__
super(Requirement, self).__init__(requirement_string)
File "/usr/lib/python3/dist-packages/pkg_resources/_vendor/packaging/requirements.py", line 101, in __init__
raise InvalidRequirement("Invalid URL given")
pkg_resources.extern.packaging.requirements.InvalidRequirement: Invalid URL given
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 186, in _main
status = self.run(options, args)
File "/usr/lib/python3/dist-packages/pip/_internal/commands/install.py", line 357, in run
resolver.resolve(requirement_set)
File "/usr/lib/python3/dist-packages/pip/_internal/legacy_resolve.py", line 177, in resolve
discovered_reqs.extend(self._resolve_one(requirement_set, req))
File "/usr/lib/python3/dist-packages/pip/_internal/legacy_resolve.py", line 382, in _resolve_one
set(req_to_install.extras) - set(dist.extras)
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2980, in extras
return [dep for dep in self._dep_map if dep]
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3025, in _dep_map
self.__dep_map = self._compute_dependencies()
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3035, in _compute_dependencies
reqs.extend(parse_requirements(req))
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3096, in parse_requirements
yield Requirement(line)
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3105, in __init__
raise RequirementParseError(str(e))
pkg_resources.RequirementParseError: Invalid URL given
In poetry 1.1.5, the Requires-Dist line that poetry generates in the wheel's METADATA file looks like this:
This issue seems to have been introduced in poetry 1.1. For example, in poetry 1.0.10, the @ and following text was not generated, and pkg_resources handles the requirement just fine:
Requires-Dist: my-dependency
To replicate:
In a poetry project, add a local wheel as a dependency. For example: poetry add ./my_dependency-0.1.0-py3-none-any.whl (In poetry 1.0.10, I found I had to put an absolute path in the pyproject.toml file or the poetry build step below would fail. But that's not needed in poetry 1.1.5.)
Build a wheel for the project using poetry build.
Try to install the wheel with pip using something like pip3 install -t <path> dist/my_project-0.1.0-py3-none-any.whl. This will fail with the "Invalid URL" exception.
The text was updated successfully, but these errors were encountered:
Everything is a "priority," but contributors are volunteers and some tasks have higher priorities than others. This is a duplicate of #5273 which is solved in our upcoming release.
I am on the latest Poetry version.
I have searched the issues of this repo and believe that this is not a duplicate.
If an exception occurs when executing a command, I executed it again in debug mode (
-vvv
option).OS version and name: Ubuntu 20.04
Poetry version: 1.1.5
Issue
I am using poetry to build a wheel for a particular project intended to be installed via pip. One of the project's dependencies is itself a local wheel, so pyproject.toml uses the
path
specification for that dependency like so:When I attempt to use pip to install the wheel generated by
poetry build
, it fails, and pkg_resources complains that the dependency has an invalid URL. For example:In poetry 1.1.5, the Requires-Dist line that poetry generates in the wheel's METADATA file looks like this:
This issue seems to have been introduced in poetry 1.1. For example, in poetry 1.0.10, the
@
and following text was not generated, and pkg_resources handles the requirement just fine:To replicate:
poetry add ./my_dependency-0.1.0-py3-none-any.whl
(In poetry 1.0.10, I found I had to put an absolute path in the pyproject.toml file or the poetry build step below would fail. But that's not needed in poetry 1.1.5.)poetry build
.pip3 install -t <path> dist/my_project-0.1.0-py3-none-any.whl
. This will fail with the "Invalid URL" exception.The text was updated successfully, but these errors were encountered: