Poetry: "conflict with the backend dependencies" with pip 19

Created on 23 Jan 2019  路  12Comments  路  Source: python-poetry/poetry

  • [x] I am on the latest Poetry version.
  • [x] I have searched the issues of this repo and believe that this is not a duplicate.
  • [x] If an exception occurs when executing a command, I executed it again in debug mode (-vvv option).

  • OS version and name: Linux, RHEL7.5

  • Poetry version: 0.12.11
  • Link of a Gist with the contents of your pyproject.toml file: https://gist.github.com/danmur/fe1b9685b8f6fa87fad4764be892f9f9
$ ~/pythons/poetry2/bin/poetry install -vvvv
Using virtualenv: /home/daniel.j.murray/git/testapp/.venv
Installing dependencies from lock file

Nothing to install or update

  - Skipping scandir (1.9.0) Already installed
  - Skipping six (1.12.0) Already installed
  - Skipping atomicwrites (1.2.1) Already installed
  - Skipping attrs (18.2.0) Already installed
  - Skipping certifi (2018.11.29) Already installed
  - Skipping chardet (3.0.4) Already installed
  - Skipping colorama (0.4.1) Not needed for the current environment
  - Skipping funcsigs (1.0.2) Already installed
  - Skipping idna (2.5) Already installed
  - Skipping more-itertools (5.0.0) Already installed
  - Skipping pathlib2 (2.3.3) Already installed
  - Skipping pluggy (0.8.1) Already installed
  - Skipping py (1.7.0) Already installed
  - Skipping urllib3 (1.22) Already installed
  - Skipping pytest (3.10.1) Already installed
  - Skipping requests (2.18.3) Already installed
  - Installing testapp (0.1.0)

[EnvCommandError]                                                                                                                                   
Command ['/home/daniel.j.murray/git/testapp/.venv/bin/pip', 'install', '-e', '/home/daniel.j.murray/git/testapp', '--no-deps'] errored with the followi        
ng output:                                                                                                                                                       
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A fu  
ture version of pip will drop support for Python 2.7.                                                                                                            
Looking in indexes: xxx                                                                                                
Obtaining file:///home/daniel.j.murray/git/testapp                                                                                                           
  Installing build dependencies: started                                                                                                                         
  Installing build dependencies: finished with status 'done'                                                                                                     
  Getting requirements to build wheel: started                                                                                                                   
  Getting requirements to build wheel: finished with status 'done'                                                                                               
Some build dependencies for file:///home/daniel.j.murray/git/testapp conflict with the backend dependencies: requests==2.21.0 is incompatible with requests  
==2.18.3.                                                                                                                                                        

Exception trace:
 /home/daniel.j.murray/pythons/poetry2/lib/python2.7/site-packages/cleo/application.py in run() at line 94
   status_code = self.do_run(input_, output_)
 /home/daniel.j.murray/pythons/poetry2/lib/python2.7/site-packages/poetry/console/application.py in do_run() at line 88
   return super(Application, self).do_run(i, o)
 /home/daniel.j.murray/pythons/poetry2/lib/python2.7/site-packages/cleo/application.py in do_run() at line 197
   status_code = command.run(input_, output_)
 /home/daniel.j.murray/pythons/poetry2/lib/python2.7/site-packages/poetry/console/commands/command.py in run() at line 77
   return super(BaseCommand, self).run(i, o)
 /home/daniel.j.murray/pythons/poetry2/lib/python2.7/site-packages/cleo/commands/base_command.py in run() at line 146
   status_code = self.execute(input_, output_)
 /home/daniel.j.murray/pythons/poetry2/lib/python2.7/site-packages/cleo/commands/command.py in execute() at line 107
   return self.handle()
 /home/daniel.j.murray/pythons/poetry2/lib/python2.7/site-packages/poetry/console/commands/install.py in handle() at line 89
   self.env.run("pip", "install", "-e", str(setup.parent), "--no-deps")
 /home/daniel.j.murray/pythons/poetry2/lib/python2.7/site-packages/poetry/utils/env.py in run() at line 492
   return super(VirtualEnv, self).run(bin, *args, **kwargs)
 /home/daniel.j.murray/pythons/poetry2/lib/python2.7/site-packages/poetry/utils/env.py in run() at line 354
   raise EnvCommandError(e)

install [--no-dev] [--dry-run] [-E|--extras EXTRAS] [--develop DEVELOP]

The issue seems to be having requirements on poetry dependencies with this new version of pip. I have a dependency on requests 2.18.3, which I imagine poetry does too but for a different version, and pip is trying to treat this as a conflict here:
https://github.com/pypa/pip/blob/8ff8e1fa9e9c70b1fa285a8c02223e92a53d05ef/src/pip/_internal/operations/prepare.py#L151

Commenting out the [build-system] bit in pyproject.toml works around it.

I am not sure if this is a poetry issue or a pip issue; if it seems more like a pip issue let me know and I'll file it there :)

Bug stale

Most helpful comment

Downgrading pip to 18.1 also seems to be a valid workaround.

All 12 comments

Downgrading pip to 18.1 also seems to be a valid workaround.

Commenting the build-system section out worked for me, but downgrading to 18.1 did not...
...unless you do it before running poetry install at all.

I've filed a pip issue here: https://github.com/pypa/pip/issues/6314
Hopefully between the projects we'll get this sorted out, but @sdispater has been awfully quiet of late :'(

@danmur - would you be able to try requests = "^2.18.3" in your project as an alternative workaround?

@sdispater - so, it looks like this is a poetry bug that is going to make poetry unusable with pip 19 when the "fix" for pypa/pip#6314 lands.

The quickest fix for poetry would be to move pyproject.toml to pyproject.toml.not before doing the pip install -e with the synthesised setup.py and move it back when it deletes the setup.py.

I'm curious: why does poetry need to do the pip install -e with the fake setup.py in the first place?

I have the same problem trying to install orator from source... The problem can be bypassed if I downgrade pip to 18.1 but this is not a solution...

pip install --upgrade pip==18.1

I think this issue is a priority, it will make poetry unusable in some cases. Is @sdispater the only maintainer?

@psincraian - yes, I'm afraid @sdispater is currently the only maintainer...

@sdispater - this issue may be come fairly critical at any time, and probably some time soon, see https://github.com/pypa/pip/issues/6314.

Hi @sdispater
This is really critical! The easiest way to reproduce this is to run with pip 19:

poetry new foobar
poetry add cleo  # Actual version 0.7.X
poetry install

Since poetry itself is sticked to cleo 0.6.X, any packages willing to use cleo 0.7.X will result in raising an exception

I thought #697 is a thread related to this.

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Closing this issue automatically because it has not had any activity since it has been marked as stale. If you think it is still relevant and should be addressed, feel free to open a new one.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jhrmnn picture jhrmnn  路  3Comments

etijskens picture etijskens  路  3Comments

EdgyEdgemond picture EdgyEdgemond  路  3Comments

ghost picture ghost  路  3Comments

Euphorbium picture Euphorbium  路  3Comments