video-funnel icon indicating copy to clipboard operation
video-funnel copied to clipboard

Installation fails due to conflicting keyring version

Open NeolithEra opened this issue 4 years ago • 3 comments

Hi, users are unable to run Video-funnel due to dependency conflict with keyring package. As shown in the following full dependency graph of video-funnel, browsercookie requires keyring*,while pycookiecheat * requires keyring==19.1.0.

According to pip’s “first found wins” installation strategy, keyring 21.2.1 is the actually installed version. However, keyring 21.2.1 does not satisfy keyring==19.1.0.

Dependency tree-----------

video-funnel - 0.3.1
| +- aiohttp (install version:3.5.4 version range:==3.5.4)
| +- argparse(install version:1.4.0 version range:*)
| +- browsercookie(install version:0.7.6 version range:*)
| | +- keyring(install version:21.2.0 version range:*)
| | +- lz4(install version:3.0.2 version range:*)
| | | +- future(install version:0.18.2 version range:*)
| | | +- pkgconfig(install version:1.5.1 version range:*)
| | | +- pytest(install version:5.4.1 version range:*)
| | | | +- atomicwrites(install version:1.3.0 version range:>=1.0)
| | | | +- attrs(install version:19.3.0 version range:>=17.4.0)
| | | | +- colorama(install version:0.4.3 version range:*)
| | | | +- importlib-metadata(install version:1.6.0 version range:>=0.12)
| | | | +- more-itertools(install version:8.2.0 version range:>=4.0.0)
| | | | +- packaging(install version:20.3 version range:*)
| | | | +- pathlib2(install version:2.3.5 version range:>=2.2.0)
| | | | +- pluggy(install version:0.13.1 version range:>=0.12,<1.0)
| | | | +- py(install version:1.8.1 version range:>=1.5.0)
| | | | +- wcwidth(install version:0.1.9 version range:*)
| | | +- pytest-runner(install version:5.2 version range:*)
| | | +- setuptools-scm(install version:3.5.0 version range:*)
| | | +- tox(install version:3.14.6 version range:*)
| | +- pycryptodome(install version:3.9.7 version range:*)
| +- pycookiecheat(install version:0.4.5 version range:*)
| | +- cryptography(install version:2.7 version range:==2.7)
| | +- keyring(install version:19.1.0 version range:==19.1.0)
| +- tqdm(install version:4.45.0 version range:*) 

Thanks for your help. Best, Neolith

NeolithEra avatar May 29 '20 09:05 NeolithEra

Solution

  1. Ask your direct dependency browsercookie to loosen the version range of keyring to be <= 19.1.0.
  2. Ask your direct dependency pycookiecheat to loosen the version range of keyring to be >= 19.1.0. @cshuaimin Which solution do you prefer, 1 or 2? Please let me know your choice. May I pull a request to solve this issue?

NeolithEra avatar May 29 '20 09:05 NeolithEra

I successfully installed it..

csm@arch ~/C/scd (task)> pip install video-funnel
Defaulting to user installation because normal site-packages is not writeable
Collecting video-funnel
  Downloading video_funnel-0.3.1-py3-none-any.whl (9.7 kB)
Collecting pycookiecheat
  Downloading pycookiecheat-0.4.5-py3-none-any.whl (9.1 kB)
Collecting tqdm
  Downloading tqdm-4.46.0-py2.py3-none-any.whl (63 kB)
     |████████████████████████████████| 63 kB 104 kB/s 
Collecting argparse
  Downloading argparse-1.4.0-py2.py3-none-any.whl (23 kB)
Collecting browsercookie
  Downloading browsercookie-0.7.6.tar.gz (6.0 kB)
Collecting aiohttp==3.5.4
  Downloading aiohttp-3.5.4.tar.gz (1.1 MB)
     |████████████████████████████████| 1.1 MB 854 kB/s 
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting keyring==19.1.0
  Downloading keyring-19.1.0-py2.py3-none-any.whl (33 kB)
Collecting cryptography==2.7
  Downloading cryptography-2.7-cp34-abi3-manylinux1_x86_64.whl (2.3 MB)
     |████████████████████████████████| 2.3 MB 272 kB/s 
Requirement already satisfied: pycryptodome in /usr/lib/python3.8/site-packages (from browsercookie->video-funnel) (3.9.7)
Collecting lz4
  Downloading lz4-3.0.2-cp38-cp38-manylinux2010_x86_64.whl (1.8 MB)
     |████████████████████████████████| 1.8 MB 1.1 MB/s 
Collecting multidict<5.0,>=4.0
  Downloading multidict-4.7.6-cp38-cp38-manylinux1_x86_64.whl (162 kB)
     |████████████████████████████████| 162 kB 583 kB/s 
Collecting async-timeout<4.0,>=3.0
  Downloading async_timeout-3.0.1-py3-none-any.whl (8.2 kB)
Requirement already satisfied: chardet<4.0,>=2.0 in /usr/lib/python3.8/site-packages (from aiohttp==3.5.4->video-funnel) (3.0.4)
Collecting yarl<2.0,>=1.0
  Downloading yarl-1.4.2-cp38-cp38-manylinux1_x86_64.whl (253 kB)
     |████████████████████████████████| 253 kB 590 kB/s 
Requirement already satisfied: attrs>=17.3.0 in /usr/lib/python3.8/site-packages (from aiohttp==3.5.4->video-funnel) (19.3.0)
Requirement already satisfied: entrypoints in /usr/lib/python3.8/site-packages (from keyring==19.1.0->pycookiecheat->video-funnel) (0.3)
Collecting secretstorage; sys_platform == "linux"
  Downloading SecretStorage-3.1.2-py3-none-any.whl (14 kB)
Requirement already satisfied: six>=1.4.1 in /usr/lib/python3.8/site-packages (from cryptography==2.7->pycookiecheat->video-funnel) (1.15.0)
Collecting cffi!=1.11.3,>=1.8
  Downloading cffi-1.14.0-cp38-cp38-manylinux1_x86_64.whl (409 kB)
     |████████████████████████████████| 409 kB 610 kB/s 
Collecting asn1crypto>=0.21.0
  Downloading asn1crypto-1.3.0-py2.py3-none-any.whl (103 kB)
     |████████████████████████████████| 103 kB 1.5 MB/s 
Requirement already satisfied: idna>=2.0 in /usr/lib/python3.8/site-packages (from yarl<2.0,>=1.0->aiohttp==3.5.4->video-funnel) (2.9)
Collecting jeepney>=0.4.2
  Downloading jeepney-0.4.3-py3-none-any.whl (21 kB)
Collecting pycparser
  Downloading pycparser-2.20-py2.py3-none-any.whl (112 kB)
     |████████████████████████████████| 112 kB 855 kB/s 
Building wheels for collected packages: aiohttp
  Building wheel for aiohttp (PEP 517) ... done
  Created wheel for aiohttp: filename=aiohttp-3.5.4-cp38-cp38-linux_x86_64.whl size=1411368 sha256=0d844b9c58b6a2662291e4a119e73ad18cdde5345dfbc3f1bb38cff23ffae206
  Stored in directory: /home/csm/.cache/pip/wheels/89/84/e6/de199bc435ee4eb6a0d978d3b59457fd05ac67ab1bc4e66e11
Successfully built aiohttp
Installing collected packages: pycparser, cffi, asn1crypto, cryptography, jeepney, secretstorage, keyring, pycookiecheat, tqdm, argparse, lz4, browsercookie, multidict, async-timeout, yarl, aiohttp, video-funnel
  WARNING: The script keyring is installed in '/home/csm/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The script tqdm is installed in '/home/csm/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
    Running setup.py install for browsercookie ... done
  WARNING: The script vf is installed in '/home/csm/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed aiohttp-3.5.4 argparse-1.4.0 asn1crypto-1.3.0 async-timeout-3.0.1 browsercookie-0.7.6 cffi-1.14.0 cryptography-2.7 jeepney-0.4.3 keyring-19.1.0 lz4-3.0.2 multidict-4.7.6 pycookiecheat-0.4.5 pycparser-2.20 secretstorage-3.1.2 tqdm-4.46.0 video-funnel-0.3.1 yarl-1.4.2

cshuaimin avatar May 29 '20 10:05 cshuaimin

@cshuaimin , we indeed encountered the following build failure. I installed video-funnel in a clean virtual environment. I think maybe your development environment has some preinstalled dependencies that shadowed this problem. bug

NeolithEra avatar Jun 14 '20 07:06 NeolithEra