poetry: InvalidRequirement when installing apache airflow with gcp_api extra

  • 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).
Poetry
Version: 1.0.0a2
Python:  3.6.6

Virtualenv
Python:         3.6.6
Implementation: CPython
Path:           /Users/benjamin/.pyenv/versions/3.6.6/envs/poetry
Valid:          True

System
Platform: darwin
OS:       posix
Python:   /Users/benjamin/.pyenv/versions/3.6.6

Issue

# On a clean virtualenv
$ poetry add apache-airflow --extras gcp_api -v
Using virtualenv: /Users/benjamin/.pyenv/versions/3.6.6/envs/poetry
Using version ^1.10 for apache-airflow

Updating dependencies
Resolving dependencies... (1.3s)

[InvalidRequirement]
Invalid requirement, parse error at "'; <empty'"

Traceback (most recent call last):
  File "/Users/benjamin/.poetry/lib/poetry/_vendor/py3.6/clikit/console_application.py", line 131, in run
    status_code = command.handle(parsed_args, io)
  File "/Users/benjamin/.poetry/lib/poetry/_vendor/py3.6/clikit/api/command/command.py", line 112, in handle
    status_code = self._do_handle(args, io)
  File "/Users/benjamin/.poetry/lib/poetry/_vendor/py3.6/clikit/api/command/command.py", line 160, in _do_handle
    return getattr(handler, handler_method)(args, io, self)
  File "/Users/benjamin/.poetry/lib/poetry/_vendor/py3.6/cleo/commands/command.py", line 92, in wrap_handle
    return self.handle()
  File "/Users/benjamin/.poetry/lib/poetry/console/commands/add.py", line 135, in handle
    status = installer.run()
  File "/Users/benjamin/.poetry/lib/poetry/installation/installer.py", line 74, in run
    self._do_install(local_repo)
  File "/Users/benjamin/.poetry/lib/poetry/installation/installer.py", line 214, in _do_install
    ops = solver.solve(use_latest=whitelist)
  File "/Users/benjamin/.poetry/lib/poetry/puzzle/solver.py", line 38, in solve
    packages, depths = self._solve(use_latest=use_latest)
  File "/Users/benjamin/.poetry/lib/poetry/puzzle/solver.py", line 171, in _solve
    self._package, self._provider, locked=locked, use_latest=use_latest
  File "/Users/benjamin/.poetry/lib/poetry/mixology/__init__.py", line 7, in resolve_version
    return solver.solve()
  File "/Users/benjamin/.poetry/lib/poetry/mixology/version_solver.py", line 79, in solve
    next = self._choose_package_version()
  File "/Users/benjamin/.poetry/lib/poetry/mixology/version_solver.py", line 380, in _choose_package_version
    for incompatibility in self._provider.incompatibilities_for(version):
  File "/Users/benjamin/.poetry/lib/poetry/puzzle/provider.py", line 435, in incompatibilities_for
    for dep in dependencies
  File "/Users/benjamin/.poetry/lib/poetry/puzzle/provider.py", line 435, in <listcomp>
    for dep in dependencies
  File "/Users/benjamin/.poetry/lib/poetry/packages/package.py", line 346, in to_dependency
    return dependency_from_pep_508(name)
  File "/Users/benjamin/.poetry/lib/poetry/packages/__init__.py", line 34, in dependency_from_pep_508
    req = Requirement(name)
  File "/Users/benjamin/.poetry/lib/poetry/version/requirements.py", line 202, in __init__
    requirement_string[e.loc : e.loc + 8]

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 5
  • Comments: 20 (7 by maintainers)

Most upvoted comments

Still an issue, both under 0.12.17 and 1.0.0a4

@sdispater would you mind reopening this issue as it does not seem to be fixed?

@Paikan Thanks! I will investigate.

@sdispater sadly I still seem to have the bug using 0.12.12.

poetry debug:info
Poetry
======

 * Version: 0.12.12
 * Python:  3.6.6


Virtualenv
==========

 * Python:         3.6.6
 * Implementation: CPython
 * Path:           /Users/benjamin/Dev/playground/test/.venv
 * Valid:          True


System
======

 * Platform: darwin
 * OS:       posix
 * Python:   /Users/benjamin/.pyenv/versions/3.6.6
poetry add apache-airflow --extras gcp_api -v --dev
Using virtualenv: /Users/benjamin/Dev/playground/test/.venv
Using version ^1.10 for apache-airflow

Updating dependencies
Resolving dependencies... (0.0s)

[InvalidRequirement]
Invalid requirement, parse error at "'; <empty'"

Exception trace:
 /Users/benjamin/.poetry/lib/poetry/_vendor/py3.6/cleo/application.py in run() at line 94
   status_code = self.do_run(input_, output_)
 /Users/benjamin/.poetry/lib/poetry/console/application.py in do_run() at line 88
   return super(Application, self).do_run(i, o)
 /Users/benjamin/.poetry/lib/poetry/_vendor/py3.6/cleo/application.py in do_run() at line 197
   status_code = command.run(input_, output_)
 /Users/benjamin/.poetry/lib/poetry/console/commands/command.py in run() at line 77
   return super(BaseCommand, self).run(i, o)
 /Users/benjamin/.poetry/lib/poetry/_vendor/py3.6/cleo/commands/base_command.py in run() at line 146
   status_code = self.execute(input_, output_)
 /Users/benjamin/.poetry/lib/poetry/_vendor/py3.6/cleo/commands/command.py in execute() at line 107
   return self.handle()
 /Users/benjamin/.poetry/lib/poetry/console/commands/add.py in handle() at line 139
   status = installer.run()
 /Users/benjamin/.poetry/lib/poetry/installation/installer.py in run() at line 73
   self._do_install(local_repo)
 /Users/benjamin/.poetry/lib/poetry/installation/installer.py in _do_install() at line 165
   ops = solver.solve(use_latest=self._whitelist)
 /Users/benjamin/.poetry/lib/poetry/puzzle/solver.py in solve() at line 38
   packages, depths = self._solve(use_latest=use_latest)
 /Users/benjamin/.poetry/lib/poetry/puzzle/solver.py in _solve() at line 167
   locked[package.name] = DependencyPackage(package.to_dependency(), package)
 /Users/benjamin/.poetry/lib/poetry/packages/package.py in to_dependency() at line 346
   return dependency_from_pep_508(name)
 /Users/benjamin/.poetry/lib/poetry/packages/__init__.py in dependency_from_pep_508() at line 35
   req = Requirement(name)
 /Users/benjamin/.poetry/lib/poetry/version/requirements.py in __init__() at line 202
   requirement_string[e.loc : e.loc + 8]

This should be fixed in the latest 0.12.12 release

I confirm that the problem persists.

poetry debug:info
Poetry
======

 * Version: 0.12.15
 * Python:  3.6.6


Virtualenv
==========

 * Python:         3.6.6
 * Implementation: CPython
 * Path:           /Users/benjamin/Dev/playground/test2/.venv
 * Valid:          True


System
======

 * Platform: darwin
 * OS:       posix
 * Python:   /Users/benjamin/.pyenv/versions/3.6.6
poetry cache:clear pypi --all
Delete 2 entries? (yes/no) [no] yes
poetry add apache-airflow --extras gcp_api -v --dev
Using virtualenv: /Users/benjamin/Dev/playground/test2/.venv
Using version ^1.10 for apache-airflow

Updating dependencies
Resolving dependencies... (0.0s)

[InvalidRequirement]
Invalid requirement, parse error at "'; <empty'"

Exception trace:
 /Users/benjamin/.poetry/lib/poetry/_vendor/py3.6/cleo/application.py in run() at line 94
   status_code = self.do_run(input_, output_)
 /Users/benjamin/.poetry/lib/poetry/console/application.py in do_run() at line 88
   return super(Application, self).do_run(i, o)
 /Users/benjamin/.poetry/lib/poetry/_vendor/py3.6/cleo/application.py in do_run() at line 197
   status_code = command.run(input_, output_)
 /Users/benjamin/.poetry/lib/poetry/console/commands/command.py in run() at line 77
   return super(BaseCommand, self).run(i, o)
 /Users/benjamin/.poetry/lib/poetry/_vendor/py3.6/cleo/commands/base_command.py in run() at line 146
   status_code = self.execute(input_, output_)
 /Users/benjamin/.poetry/lib/poetry/_vendor/py3.6/cleo/commands/command.py in execute() at line 107
   return self.handle()
 /Users/benjamin/.poetry/lib/poetry/console/commands/add.py in handle() at line 139
   status = installer.run()
 /Users/benjamin/.poetry/lib/poetry/installation/installer.py in run() at line 73
   self._do_install(local_repo)
 /Users/benjamin/.poetry/lib/poetry/installation/installer.py in _do_install() at line 165
   ops = solver.solve(use_latest=self._whitelist)
 /Users/benjamin/.poetry/lib/poetry/puzzle/solver.py in solve() at line 38
   packages, depths = self._solve(use_latest=use_latest)
 /Users/benjamin/.poetry/lib/poetry/puzzle/solver.py in _solve() at line 167
   locked[package.name] = DependencyPackage(package.to_dependency(), package)
 /Users/benjamin/.poetry/lib/poetry/packages/package.py in to_dependency() at line 346
   return dependency_from_pep_508(name)
 /Users/benjamin/.poetry/lib/poetry/packages/__init__.py in dependency_from_pep_508() at line 35
   req = Requirement(name)
 /Users/benjamin/.poetry/lib/poetry/version/requirements.py in __init__() at line 202
   requirement_string[e.loc : e.loc + 8]

I saw the same error when trying to add poetry add pyobjc to my project, as @Pluckerpluck also pointed out. For now I installed it using pip, but I would appreciate an update whenever it is convenient for you @sdispater.

Seeing as this looks related, I’m also seeing this when trying to run poetry add keyboard. Stack trace is the same as the one given.

I forgot to add that with the same virtualenv the following command works properly

pip install 'apache-airflow[gcp_api]'