dvc: pip install errors: moto/boto3, awscli/colorama, requests?

As noted in https://discordapp.com/channels/485586884165107732/565699007037571084/629449391266070563

I already have the repo cloned. I fetch and pull the latest master branch (to this moment) and freshly regenerate my virtualenv in .env, activate it and run pip install -e ".[all,tests]" (as instructed in https://dvc.org/doc/user-guide/contributing). It succeeds but I get the following errors:

Building wheels for collected packages: psutil
...
ERROR: moto 1.3.14.dev302 has requirement boto3>=1.9.201, but you'll have boto3 1.9.115 which is incompatible.
ERROR: awscli 1.16.252 has requirement colorama<=0.3.9,>=0.2.5, but you'll have colorama 0.4.1 which is incompatible.

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 15 (10 by maintainers)

Commits related to this issue

Most upvoted comments

@edisongustavo , by the way, it felt a bit weird that I submitted the PR after your comment. It looks discouraging, to some extend, maybe you had the intention to submit a PR for it 🙂 I just had the commit laying right there a few hours before but forgot to create the PR 🙈 https://github.com/iterative/dvc/issues/2570#ref-commit-4fd7013 Thanks again for your comment, appreciate your research! 🙂

@mroutis hahaha, no no, not at all 😃

I just wanted to give a signal that this is also important for me 😃

Thanks, @edisongustavo 😃 ! There’s a PR already that should fix this https://github.com/iterative/dvc/pull/2902

Hello, I am also affected by this issue.

I think the root cause of the problem is that DVC requires a specific version of boto3:

s3 = ["boto3==1.9.115"]

The problem is that this makes it impossible to install DVC together with other libraries that also depend on boto3 that don’t fit this specific requirement.

My proposal is to depend on a version of boto3 that is newer than 1.9.115:

  1. boto3>=1.9.115,<2 (pin to major version)
  2. boto3>=1.9.115,<1.10 (pin to minor version).

I think option 1 is the best. I don’t really believe that boto3 will break compatibility in the future 1.* versions. I wouldn’t recommend option 2 because it requires bumping DVC’s version when an upgrade to boto3 is required.

How is it possible if it was installed in the clean virtualenv?

Ruslan is right about that one @shcheklein. In that https://github.com/iterative/dvc/issues/2570#issuecomment-538624781 I was referring to updating my system DVC installed as a package with pip, not to the development version installed as a git repo. Sorry for the confusion, we can safely ignore that comment and focus on https://github.com/iterative/dvc/issues/2570#issuecomment-538645844:

are valid and are our fault, as our all reqs conflict with test reqs, which doesn’t affect users, but does affect developers in a minor way. We should fix that, for sure.

p.s. do you mind if I hide https://github.com/iterative/dvc/issues/2570#issuecomment-538624781 and all its responses, off-topic and now resolved? 😋

@shcheklein Apparently it wasn’t clean, but rather inherited from the global env. docker-compose and awsebcli are definitely not our dependencies.

BTW I just upgraded my system DVC with pip3 install dvc --upgrade and it worked but with 2 red lines:

This one is about your previously installed packages, that require something else than what dvc requires. There is nothing we can do about it on our side.