[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
$ ~/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 :)
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.
Most helpful comment
Downgrading pip to 18.1 also seems to be a valid workaround.