Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Could not find a version that matches coloredlogs" when creating lockfile #871

Closed
K900 opened this issue Oct 10, 2017 · 16 comments · Fixed by #910
Closed

"Could not find a version that matches coloredlogs" when creating lockfile #871

K900 opened this issue Oct 10, 2017 · 16 comments · Fixed by #910

Comments

@K900
Copy link
Contributor

K900 commented Oct 10, 2017

Pipfile contents:

[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[packages]

flask = "*"
peewee = "*"
"psycopg2" = "*"
coloredlogs = "*"
"openvpn-status-parser" = {git = "https://github.com/ojarva/openvpn-status-parser.git"}
"python-dateutil" = "*"
"dbus-python" = "*"
gunicorn = "*"
telepot = "*"
"pymorphy2" = "*"
"pymorphy2-dicts-ru" = "*"
telethon = "*"

Running pipenv install results in

Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Could not find a version that matches coloredlogs
Tried: (no version found at all)

pipenv install --skip-lock works fine and installs all required packages.

Edit: using the latest versions of pipenv and all dependencies from PyPI on Python 3.6.2 on Arch Linux.

@NighTurs
Copy link
Contributor

NighTurs commented Oct 11, 2017

I believe I have the same issue, only for me problematic package is matplotlib. Even when I'm trying to create new project by running pipenv install matplotlib, I will get:

Creating a virtualenv for this project…
⠋Using base prefix '/usr'
New python executable in /home/nighturs/.local/share/virtualenvs/tmp3-N_UHSeHC/bin/python3
Also creating executable in /home/nighturs/.local/share/virtualenvs/tmp3-N_UHSeHC/bin/python
Installing setuptools, pip, wheel...done.

Virtualenv location: /home/nighturs/.local/share/virtualenvs/tmp3-N_UHSeHC
Creating a Pipfile for this project…
Installing matplotlib…
Collecting matplotlib
  Using cached matplotlib-2.1.0-cp36-cp36m-manylinux1_x86_64.whl
Collecting python-dateutil>=2.0 (from matplotlib)
  Using cached python_dateutil-2.6.1-py2.py3-none-any.whl
Collecting numpy>=1.7.1 (from matplotlib)
  Using cached numpy-1.13.3-cp36-cp36m-manylinux1_x86_64.whl
Collecting six>=1.10 (from matplotlib)
  Using cached six-1.11.0-py2.py3-none-any.whl
Collecting cycler>=0.10 (from matplotlib)
  Using cached cycler-0.10.0-py2.py3-none-any.whl
Collecting pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 (from matplotlib)
  Using cached pyparsing-2.2.0-py2.py3-none-any.whl
Collecting pytz (from matplotlib)
  Using cached pytz-2017.2-py2.py3-none-any.whl
Installing collected packages: six, python-dateutil, numpy, cycler, pyparsing, pytz, matplotlib
Successfully installed cycler-0.10.0 matplotlib-2.1.0 numpy-1.13.3 pyparsing-2.2.0 python-dateutil-2.6.1 pytz-2017.2 six-1.11.0

Adding matplotlib to Pipfile's [packages]…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Could not find a version that matches backports.functools-lru-cache
Tried: (no version found at all)

So lock file is not generated, but matplotlib is installed, "pipenv run pip freeze"

cycler==0.10.0
matplotlib==2.1.0
numpy==1.13.3
pyparsing==2.2.0
python-dateutil==2.6.1
pytz==2017.2
six==1.11.0

Btw, coloredlogs works fine for me, and I'm also running Arch based distro - Manjaro. Python 3.6.2, pipenv 8.2.6

Another observation is when I'm trying to set pypi source verify_ssl to false, I'm having another error:

pipenv install                                                                                                                          ~/Projects/tmp3
Creating a virtualenv for this project…
⠋Using base prefix '/usr'
New python executable in /home/nighturs/.local/share/virtualenvs/tmp3-N_UHSeHC/bin/python3
Also creating executable in /home/nighturs/.local/share/virtualenvs/tmp3-N_UHSeHC/bin/python
Installing setuptools, pip, wheel...done.

Virtualenv location: /home/nighturs/.local/share/virtualenvs/tmp3-N_UHSeHC
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Traceback (most recent call last):
  File "/usr/bin/pipenv", line 11, in <module>
    load_entry_point('pipenv==8.2.6', 'console_scripts', 'pipenv')()
  File "/usr/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/pipenv/cli.py", line 1785, in install
    do_init(dev=dev, allow_global=system, ignore_pipfile=ignore_pipfile, system=system, skip_lock=skip_lock, verbose=verbose, concurrent=concurrent, deploy=deploy)
  File "/usr/lib/python3.6/site-packages/pipenv/cli.py", line 1293, in do_init
    do_lock(system=system)
  File "/usr/lib/python3.6/site-packages/pipenv/cli.py", line 1083, in do_lock
    pre=pre
  File "/usr/lib/python3.6/site-packages/pipenv/utils.py", line 421, in resolve_deps
    resolved_tree.update(resolver.resolve(max_rounds=PIPENV_MAX_ROUNDS))
  File "/usr/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 101, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/usr/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 199, in _resolve_one_round
    for dep in self._iter_dependencies(best_match):
  File "/usr/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 293, in _iter_dependencies
    dependencies = self.repository.get_dependencies(ireq)
  File "/usr/lib/python3.6/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 171, in get_dependencies
    result = reqset._prepare_file(self.finder, ireq)
  File "/usr/lib/python3.6/site-packages/pipenv/patched/pip/req/req_set.py", line 639, in _prepare_file
    abstract_dist.prep_for_dist()
  File "/usr/lib/python3.6/site-packages/pipenv/patched/pip/req/req_set.py", line 134, in prep_for_dist
    self.req_to_install.run_egg_info()
  File "/usr/lib/python3.6/site-packages/pipenv/patched/pip/req/req_install.py", line 438, in run_egg_info
    command_desc='python setup.py egg_info')
  File "/usr/lib/python3.6/site-packages/pipenv/patched/pip/utils/__init__.py", line 707, in call_subprocess
    % (command_desc, proc.returncode, cwd))
pip.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /tmp/tmp62fqekk5build/subprocess32/

EDIT

Although coloredlogs installed fine from my own testing Pipfile, when I tried @K900 Pipfile I got the same result:

Could not find a version that matches coloredlogs
Tried: (no version found at all)

@K900
Copy link
Contributor Author

K900 commented Oct 12, 2017

It seems like the issue is with a bunch of packages, so whichever comes first in the Pipfile is mentioned in the error message.

@vphilippon
Copy link
Member

@NighTurs Your issue with matplotlib is fixed by #833, which is in master, but not yet released. You can try with the version on master to confirm.

@K900 Could you give the output of pipenv lock --verbose for me to take a look?

@K900
Copy link
Contributor Author

K900 commented Oct 12, 2017

❯ pipenv lock --verbose
Locking [dev-packages] dependencies…
Using pip: -i https://pypi.python.org/simple

                          ROUND 1                           
Current constraints:

Finding the best candidates:

Finding secondary dependencies:
------------------------------------------------------------
Result of round 1: stable, done
Locking [packages] dependencies…
Using pip: -i https://pypi.python.org/simple

                          ROUND 1                           
Current constraints:
  coloredlogs
  dbus-python
  flask
  gunicorn
  peewee
  psycopg2
  pymorphy2
  pymorphy2-dicts-ru
  python-dateutil
  telepot

Finding the best candidates:
Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Could not find a version that matches coloredlogs
Tried: (no version found at all)

@vphilippon
Copy link
Member

It feels like it's not even trying to check on pypi for coloredlogs, but it works with --skip-lock, that's odd.
Could you try with verify_ssl = false to troubleshoot, just in case?

@K900
Copy link
Contributor Author

K900 commented Oct 12, 2017

It did work with verify_ssl = false.

Locking [dev-packages] dependencies…
Using pip: -i https://pypi.python.org/simple --trusted-host pypi.python.org

                          ROUND 1                           
Current constraints:

Finding the best candidates:

Finding secondary dependencies:
------------------------------------------------------------
Result of round 1: stable, done
Locking [packages] dependencies…
Using pip: -i https://pypi.python.org/simple --trusted-host pypi.python.org

                          ROUND 1                           
Current constraints:
  coloredlogs
  dbus-python
  flask
  gunicorn
  peewee
  psycopg2
  pymorphy2
  pymorphy2-dicts-ru
  python-dateutil
  telepot

Finding the best candidates:
  found candidate coloredlogs==7.3 (constraint was <any>)
  found candidate dbus-python==1.2.4 (constraint was <any>)
  found candidate flask==0.12.2 (constraint was <any>)
  found candidate gunicorn==19.7.1 (constraint was <any>)
  found candidate peewee==2.10.2 (constraint was <any>)
  found candidate psycopg2==2.7.3.1 (constraint was <any>)
  found candidate pymorphy2==0.8 (constraint was <any>)
  found candidate pymorphy2-dicts-ru==2.4.404381.4453942 (constraint was <any>)
  found candidate python-dateutil==2.6.1 (constraint was <any>)
  found candidate telepot==12.3 (constraint was <any>)

Finding secondary dependencies:
  python-dateutil==2.6.1    requires six>=1.5
  telepot==12.3             requires aiohttp>=2.0.0, urllib3>=1.9.1
  dbus-python==1.2.4        requires -
  flask==0.12.2             requires click>=2.0, itsdangerous>=0.21, Jinja2>=2.4, Werkzeug>=0.7
  peewee==2.10.2 not in cache, need to check index
  peewee==2.10.2            requires peewee==2.10.2
  gunicorn==19.7.1          requires -
  psycopg2==2.7.3.1         requires -
  pymorphy2-dicts-ru==2.4.404381.4453942 requires -
  coloredlogs==7.3          requires humanfriendly>=3.2
  pymorphy2==0.8            requires dawg-python>=0.7, docopt>=0.6, pymorphy2-dicts<3.0,>=2.4

New dependencies found in this round:
  adding ['aiohttp', '>=2.0.0', '[]']
  adding ['click', '>=2.0', '[]']
  adding ['dawg-python', '>=0.7', '[]']
  adding ['docopt', '>=0.6', '[]']
  adding ['humanfriendly', '>=3.2', '[]']
  adding ['itsdangerous', '>=0.21', '[]']
  adding ['jinja2', '>=2.4', '[]']
  adding ['peewee', '==2.10.2', '[]']
  adding ['pymorphy2-dicts', '<3.0,>=2.4', '[]']
  adding ['six', '>=1.5', '[]']
  adding ['urllib3', '>=1.9.1', '[]']
  adding ['werkzeug', '>=0.7', '[]']
Removed dependencies in this round:
Unsafe dependencies in this round:
------------------------------------------------------------
Result of round 1: not stable

                          ROUND 2                           
Current constraints:
  aiohttp>=2.0.0
  click>=2.0
  coloredlogs
  dawg-python>=0.7
  dbus-python
  docopt>=0.6
  flask
  gunicorn
  humanfriendly>=3.2
  itsdangerous>=0.21
  Jinja2>=2.4
  peewee==2.10.2
  psycopg2
  pymorphy2
  pymorphy2-dicts<3.0,>=2.4
  pymorphy2-dicts-ru
  python-dateutil
  six>=1.5
  telepot
  urllib3>=1.9.1
  Werkzeug>=0.7

Finding the best candidates:
  found candidate aiohttp==2.2.5 (constraint was >=2.0.0)
  found candidate click==6.7 (constraint was >=2.0)
  found candidate coloredlogs==7.3 (constraint was <any>)
  found candidate dawg-python==0.7.2 (constraint was >=0.7)
  found candidate dbus-python==1.2.4 (constraint was <any>)
  found candidate docopt==0.6.2 (constraint was >=0.6)
  found candidate flask==0.12.2 (constraint was <any>)
  found candidate gunicorn==19.7.1 (constraint was <any>)
  found candidate humanfriendly==4.4.1 (constraint was >=3.2)
  found candidate itsdangerous==0.24 (constraint was >=0.21)
  found candidate jinja2==2.9.6 (constraint was >=2.4)
  found candidate peewee==2.10.2 (constraint was ==2.10.2)
  found candidate psycopg2==2.7.3.1 (constraint was <any>)
  found candidate pymorphy2==0.8 (constraint was <any>)
  found candidate pymorphy2-dicts==2.4.393442.3710985 (constraint was >=2.4,<3.0)
  found candidate pymorphy2-dicts-ru==2.4.404381.4453942 (constraint was <any>)
  found candidate python-dateutil==2.6.1 (constraint was <any>)
  found candidate six==1.11.0 (constraint was >=1.5)
  found candidate telepot==12.3 (constraint was <any>)
  found candidate urllib3==1.22 (constraint was >=1.9.1)
  found candidate werkzeug==0.12.2 (constraint was >=0.7)

Finding secondary dependencies:
  jinja2==2.9.6             requires MarkupSafe>=0.23
  pymorphy2-dicts-ru==2.4.404381.4453942 requires -
  flask==0.12.2             requires click>=2.0, itsdangerous>=0.21, Jinja2>=2.4, Werkzeug>=0.7
  gunicorn==19.7.1          requires -
  urllib3==1.22             requires -
  werkzeug==0.12.2          requires -
  pymorphy2-dicts==2.4.393442.3710985 requires -
  itsdangerous==0.24        requires -
  aiohttp==2.2.5            requires async-timeout>=1.2.0, chardet, multidict>=2.1.4, yarl>=0.11
  humanfriendly==4.4.1      requires -
  python-dateutil==2.6.1    requires six>=1.5
  psycopg2==2.7.3.1         requires -
  peewee==2.10.2            requires peewee==2.10.2
  telepot==12.3             requires aiohttp>=2.0.0, urllib3>=1.9.1
  click==6.7                requires -
  dawg-python==0.7.2        requires -
  six==1.11.0               requires -
  dbus-python==1.2.4        requires -
  coloredlogs==7.3          requires humanfriendly>=3.2
  pymorphy2==0.8            requires dawg-python>=0.7, docopt>=0.6, pymorphy2-dicts<3.0,>=2.4
  docopt==0.6.2             requires -

New dependencies found in this round:
  adding ['async-timeout', '>=1.2.0', '[]']
  adding ['chardet', '', '[]']
  adding ['markupsafe', '>=0.23', '[]']
  adding ['multidict', '>=2.1.4', '[]']
  adding ['yarl', '>=0.11', '[]']
Removed dependencies in this round:
Unsafe dependencies in this round:
------------------------------------------------------------
Result of round 2: not stable

                          ROUND 3                           
Current constraints:
  aiohttp>=2.0.0
  async-timeout>=1.2.0
  chardet
  click>=2.0
  coloredlogs
  dawg-python>=0.7
  dbus-python
  docopt>=0.6
  flask
  gunicorn
  humanfriendly>=3.2
  itsdangerous>=0.21
  Jinja2>=2.4
  MarkupSafe>=0.23
  multidict>=2.1.4
  peewee==2.10.2
  psycopg2
  pymorphy2
  pymorphy2-dicts<3.0,>=2.4
  pymorphy2-dicts-ru
  python-dateutil
  six>=1.5
  telepot
  urllib3>=1.9.1
  Werkzeug>=0.7
  yarl>=0.11

Finding the best candidates:
  found candidate aiohttp==2.2.5 (constraint was >=2.0.0)
  found candidate async-timeout==2.0.0 (constraint was >=1.2.0)
  found candidate chardet==3.0.4 (constraint was <any>)
  found candidate click==6.7 (constraint was >=2.0)
  found candidate coloredlogs==7.3 (constraint was <any>)
  found candidate dawg-python==0.7.2 (constraint was >=0.7)
  found candidate dbus-python==1.2.4 (constraint was <any>)
  found candidate docopt==0.6.2 (constraint was >=0.6)
  found candidate flask==0.12.2 (constraint was <any>)
  found candidate gunicorn==19.7.1 (constraint was <any>)
  found candidate humanfriendly==4.4.1 (constraint was >=3.2)
  found candidate itsdangerous==0.24 (constraint was >=0.21)
  found candidate jinja2==2.9.6 (constraint was >=2.4)
  found candidate markupsafe==1.0 (constraint was >=0.23)
  found candidate multidict==3.2.0 (constraint was >=2.1.4)
  found candidate peewee==2.10.2 (constraint was ==2.10.2)
  found candidate psycopg2==2.7.3.1 (constraint was <any>)
  found candidate pymorphy2==0.8 (constraint was <any>)
  found candidate pymorphy2-dicts==2.4.393442.3710985 (constraint was >=2.4,<3.0)
  found candidate pymorphy2-dicts-ru==2.4.404381.4453942 (constraint was <any>)
  found candidate python-dateutil==2.6.1 (constraint was <any>)
  found candidate six==1.11.0 (constraint was >=1.5)
  found candidate telepot==12.3 (constraint was <any>)
  found candidate urllib3==1.22 (constraint was >=1.9.1)
  found candidate werkzeug==0.12.2 (constraint was >=0.7)
  found candidate yarl==0.13.0 (constraint was >=0.11)

Finding secondary dependencies:
  pymorphy2-dicts==2.4.393442.3710985 requires -
  psycopg2==2.7.3.1         requires -
  telepot==12.3             requires aiohttp>=2.0.0, urllib3>=1.9.1
  coloredlogs==7.3          requires humanfriendly>=3.2
  async-timeout==2.0.0 not in cache, need to check index
  async-timeout==2.0.0      requires async-timeout==2.0.0
  flask==0.12.2             requires click>=2.0, itsdangerous>=0.21, Jinja2>=2.4, Werkzeug>=0.7
  werkzeug==0.12.2          requires -
  peewee==2.10.2            requires peewee==2.10.2
  dawg-python==0.7.2        requires -
  pymorphy2-dicts-ru==2.4.404381.4453942 requires -
  python-dateutil==2.6.1    requires six>=1.5
  gunicorn==19.7.1          requires -
  pymorphy2==0.8            requires dawg-python>=0.7, docopt>=0.6, pymorphy2-dicts<3.0,>=2.4
  urllib3==1.22             requires -
  yarl==0.13.0 not in cache, need to check index
  yarl==0.13.0              requires multidict>=2.0, yarl==0.13.0
  jinja2==2.9.6             requires MarkupSafe>=0.23
  chardet==3.0.4            requires -
  multidict==3.2.0          requires -
  dbus-python==1.2.4        requires -
  six==1.11.0               requires -
  humanfriendly==4.4.1      requires -
  aiohttp==2.2.5            requires async-timeout>=1.2.0, chardet, multidict>=2.1.4, yarl>=0.11
  click==6.7                requires -
  docopt==0.6.2             requires -
  itsdangerous==0.24        requires -
  markupsafe==1.0           requires -

New dependencies found in this round:
  adding ['async-timeout', '==2.0.0,>=1.2.0', '[]']
  adding ['multidict', '>=2.0,>=2.1.4', '[]']
  adding ['yarl', '==0.13.0,>=0.11', '[]']
Removed dependencies in this round:
  removing ['async-timeout', '>=1.2.0', '[]']
  removing ['multidict', '>=2.1.4', '[]']
  removing ['yarl', '>=0.11', '[]']
Unsafe dependencies in this round:
------------------------------------------------------------
Result of round 3: not stable

                          ROUND 4                           
Current constraints:
  aiohttp>=2.0.0
  async-timeout==2.0.0,>=1.2.0
  chardet
  click>=2.0
  coloredlogs
  dawg-python>=0.7
  dbus-python
  docopt>=0.6
  flask
  gunicorn
  humanfriendly>=3.2
  itsdangerous>=0.21
  Jinja2>=2.4
  MarkupSafe>=0.23
  multidict>=2.0,>=2.1.4
  peewee==2.10.2
  psycopg2
  pymorphy2
  pymorphy2-dicts<3.0,>=2.4
  pymorphy2-dicts-ru
  python-dateutil
  six>=1.5
  telepot
  urllib3>=1.9.1
  Werkzeug>=0.7
  yarl==0.13.0,>=0.11

Finding the best candidates:
  found candidate aiohttp==2.2.5 (constraint was >=2.0.0)
  found candidate async-timeout==2.0.0 (constraint was >=1.2.0,==2.0.0)
  found candidate chardet==3.0.4 (constraint was <any>)
  found candidate click==6.7 (constraint was >=2.0)
  found candidate coloredlogs==7.3 (constraint was <any>)
  found candidate dawg-python==0.7.2 (constraint was >=0.7)
  found candidate dbus-python==1.2.4 (constraint was <any>)
  found candidate docopt==0.6.2 (constraint was >=0.6)
  found candidate flask==0.12.2 (constraint was <any>)
  found candidate gunicorn==19.7.1 (constraint was <any>)
  found candidate humanfriendly==4.4.1 (constraint was >=3.2)
  found candidate itsdangerous==0.24 (constraint was >=0.21)
  found candidate jinja2==2.9.6 (constraint was >=2.4)
  found candidate markupsafe==1.0 (constraint was >=0.23)
  found candidate multidict==3.2.0 (constraint was >=2.0,>=2.1.4)
  found candidate peewee==2.10.2 (constraint was ==2.10.2)
  found candidate psycopg2==2.7.3.1 (constraint was <any>)
  found candidate pymorphy2==0.8 (constraint was <any>)
  found candidate pymorphy2-dicts==2.4.393442.3710985 (constraint was >=2.4,<3.0)
  found candidate pymorphy2-dicts-ru==2.4.404381.4453942 (constraint was <any>)
  found candidate python-dateutil==2.6.1 (constraint was <any>)
  found candidate six==1.11.0 (constraint was >=1.5)
  found candidate telepot==12.3 (constraint was <any>)
  found candidate urllib3==1.22 (constraint was >=1.9.1)
  found candidate werkzeug==0.12.2 (constraint was >=0.7)
  found candidate yarl==0.13.0 (constraint was >=0.11,==0.13.0)

Finding secondary dependencies:
  click==6.7                requires -
  aiohttp==2.2.5            requires async-timeout>=1.2.0, chardet, multidict>=2.1.4, yarl>=0.11
  chardet==3.0.4            requires -
  pymorphy2-dicts==2.4.393442.3710985 requires -
  urllib3==1.22             requires -
  multidict==3.2.0          requires -
  markupsafe==1.0           requires -
  flask==0.12.2             requires click>=2.0, itsdangerous>=0.21, Jinja2>=2.4, Werkzeug>=0.7
  yarl==0.13.0              requires multidict>=2.0, yarl==0.13.0
  gunicorn==19.7.1          requires -
  coloredlogs==7.3          requires humanfriendly>=3.2
  pymorphy2==0.8            requires dawg-python>=0.7, docopt>=0.6, pymorphy2-dicts<3.0,>=2.4
  async-timeout==2.0.0      requires async-timeout==2.0.0
  humanfriendly==4.4.1      requires -
  pymorphy2-dicts-ru==2.4.404381.4453942 requires -
  telepot==12.3             requires aiohttp>=2.0.0, urllib3>=1.9.1
  itsdangerous==0.24        requires -
  dawg-python==0.7.2        requires -
  docopt==0.6.2             requires -
  werkzeug==0.12.2          requires -
  six==1.11.0               requires -
  jinja2==2.9.6             requires MarkupSafe>=0.23
  psycopg2==2.7.3.1         requires -
  python-dateutil==2.6.1    requires six>=1.5
  peewee==2.10.2            requires peewee==2.10.2
  dbus-python==1.2.4        requires -
------------------------------------------------------------
Result of round 4: stable, done
Updated Pipfile.lock (98f578)!

@NighTurs
Copy link
Contributor

@vphilippon Installed from master but getting exactly the same errors.

pipenv --version 
pipenv, version 8.2.7

@vphilippon
Copy link
Member

Ok, so those are really two separate issues.
@NighTurs Could you try clearing your cache: pipenv lock --verbose --clear and report back on #890 instead. The cache could still have the invalid dependencies in it.

@K900 Ok, so there's an issue with the SSL verification when performing the dependency resolution, but I'm unable to reproduce it. Unfortunately HTTPS/SSL config and verification are not my forte, so I'll have to leave it to someone else.

@nateprewitt
Copy link
Sponsor Member

@K900, this is almost certainly a certificate chain or SSL configuration issue on your machine or local network. Are you behind any sort of firewall/unique network topology? Have you made any changes to your system cert chain?

@K900
Copy link
Contributor Author

K900 commented Oct 13, 2017

Any suggestions on how to troubleshoot it? I'm able to use curl and requests to access PyPI with no issues, as well as every browser I've tried.

@NighTurs
Copy link
Contributor

@nateprewitt as it seems like it doesn't reproduce for everyone, I believe it has something to do with Arch based distros. @K900 Pipfile issue reproduces on both of my Manjaro machines.

@K900
Copy link
Contributor Author

K900 commented Oct 13, 2017

OK, seems like strace has given me the answer.

openat(AT_FDCWD, "/usr/lib/python3.6/site-packages/pipenv/patched/pip/_vendor/requests/cacert.pem", O_RDONLY) = -1 ENOENT (No such file or directory)

Manually importing vendored requests breaks as well:

>>> import pipenv.patched.pip._vendor.requests as rq
>>> rq.get('https://pypi.python.org/')
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/pipenv/patched/pip/_vendor/requests/packages/urllib3/util/ssl_.py", line 295, in ssl_wrap_socket
    context.load_verify_locations(ca_certs, ca_cert_dir)
FileNotFoundError: [Errno 2] No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/pipenv/patched/pip/_vendor/requests/adapters.py", line 423, in send
    timeout=timeout
  File "/usr/lib/python3.6/site-packages/pipenv/patched/pip/_vendor/requests/packages/urllib3/connectionpool.py", line 595, in urlopen
    chunked=chunked)
  File "/usr/lib/python3.6/site-packages/pipenv/patched/pip/_vendor/requests/packages/urllib3/connectionpool.py", line 352, in _make_request
    self._validate_conn(conn)
  File "/usr/lib/python3.6/site-packages/pipenv/patched/pip/_vendor/requests/packages/urllib3/connectionpool.py", line 831, in _validate_conn
    conn.connect()
  File "/usr/lib/python3.6/site-packages/pipenv/patched/pip/_vendor/requests/packages/urllib3/connection.py", line 289, in connect
    ssl_version=resolved_ssl_version)
  File "/usr/lib/python3.6/site-packages/pipenv/patched/pip/_vendor/requests/packages/urllib3/util/ssl_.py", line 297, in ssl_wrap_socket
    raise SSLError(e)
pipenv.patched.pip._vendor.requests.packages.urllib3.exceptions.SSLError: [Errno 2] No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.6/site-packages/pipenv/patched/pip/_vendor/requests/api.py", line 70, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/lib/python3.6/site-packages/pipenv/patched/pip/_vendor/requests/api.py", line 56, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python3.6/site-packages/pipenv/patched/pip/_vendor/requests/sessions.py", line 475, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3.6/site-packages/pipenv/patched/pip/_vendor/requests/sessions.py", line 596, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3.6/site-packages/pipenv/patched/pip/_vendor/requests/adapters.py", line 497, in send
    raise SSLError(e, request=request)
pipenv.patched.pip._vendor.requests.exceptions.SSLError: [Errno 2] No such file or directory

Edit: linking the right SSL cert bundle fixes the issue:

❯ sudo ln -s /etc/ca-certificates/extracted/tls-ca-bundle.pem /usr/lib/python3.6/site-packages/pipenv/patched/pip/_vendor/requests/cacert.pem
❯ pipenv lock
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (a12fa3)!

Edit2: removing the file entirely works as well. Reinstalling pipenv from the AUR does not bring the file back. This is extremely weird.

Edit3: @NighTurs - can you run readlink /usr/lib/python3.6/site-packages/pipenv/patched/pip/_vendor/requests/cacert.pem and pacman -Qo /usr/lib/python3.6/site-packages/pipenv/patched/pip/_vendor/requests/cacert.pem on your affected machines?

@K900
Copy link
Contributor Author

K900 commented Oct 13, 2017

OK, this is incredibly weird. Uninstalling/reinstalling pipenv breaks it again; symlinking the file fixes it; removing the file does not break it.

@K900
Copy link
Contributor Author

K900 commented Oct 13, 2017

More interesting stuff: the file is there in pipenv source, and gets checked out correctly by makepkg, but doesn't get installed by setup.py install. The vendored requests also uses certifi by default, with the vendored bundle as the fallback, so installing certifi also fixes it.

Overall, I see three questions here:

  1. Why does the vendored cert bundle not get installed with pipenv?
  2. Should the Arch package for Pipenv just depend on certifi?
  3. How does it continue working after removing the symlinked bundle?

@NighTurs
Copy link
Contributor

@K900 cacert.pem doesn't exist in path you provided

ls -1 /usr/lib/python3.6/site-packages/pipenv/patched/pip/_vendor/requests/                                                                       adapters.py
api.py
auth.py
certs.py
compat.py
cookies.py
exceptions.py
hooks.py
__init__.py
models.py
packages
__pycache__
sessions.py
status_codes.py
structures.py
utils.py

@K900
Copy link
Contributor Author

K900 commented Oct 13, 2017

So I guess it is, in fact, not installed, and it's not just on my end.

NighTurs added a commit to NighTurs/pipenv that referenced this issue Oct 15, 2017
NighTurs added a commit to NighTurs/pipenv that referenced this issue Oct 15, 2017
erinxocon added a commit that referenced this issue Oct 18, 2017
Add cacert.pem from requests to releases. Fixes #871
shuvozula added a commit to shuvozula/eth-runner that referenced this issue Jun 5, 2019
…ate the coloredlogs install issue as root
shuvozula added a commit to shuvozula/eth-runner that referenced this issue Jun 5, 2019
* pushed back the watchdog updates when the miners are up, about 2mins in

* updated lock file

* disable verify_ssl=true, as directed at pypa/pipenv#871 to help mitigate the coloredlogs install issue as root

* updated lock file

* restoring ssl verify, didnt help with coloredlogs installation
shuvozula added a commit to shuvozula/eth-runner that referenced this issue Jun 5, 2019
* pushed back the watchdog updates when the miners are up, about 2mins in

* updated lock file

* disable verify_ssl=true, as directed at pypa/pipenv#871 to help mitigate the coloredlogs install issue as root

* updated lock file

* restoring ssl verify, didnt help with coloredlogs installation

* removing coloredlogs, no real value other than cosmetic ooaahh. will make it to a pain to scrape logs later because of the escape characters used for colors
shuvozula added a commit to shuvozula/eth-runner that referenced this issue Jun 5, 2019
* increasing the display interval to reduce the frequency of events sent to fluentd, dont need so much data so dialing it down

* increasing the display interval to reduce the frequency of events sent to fluentd, dont need so much data so dialing it down

* moving the metrics-start and argsparse stuff to top of start script, so that we can start seeing some results as the miners start ramping up

* Feature/start metrics sooner (#32)

* pushed back the watchdog updates when the miners are up, about 2mins in

* updated lock file

* disable verify_ssl=true, as directed at pypa/pipenv#871 to help mitigate the coloredlogs install issue as root

* updated lock file

* restoring ssl verify, didnt help with coloredlogs installation

* Feature/remove coloredlogs (#33)

* pushed back the watchdog updates when the miners are up, about 2mins in

* updated lock file

* disable verify_ssl=true, as directed at pypa/pipenv#871 to help mitigate the coloredlogs install issue as root

* updated lock file

* restoring ssl verify, didnt help with coloredlogs installation

* removing coloredlogs, no real value other than cosmetic ooaahh. will make it to a pain to scrape logs later because of the escape characters used for colors
shuvozula added a commit to shuvozula/eth-runner that referenced this issue Jun 6, 2019
* increasing the display interval to reduce the frequency of events sent to fluentd, dont need so much data so dialing it down

* increasing the display interval to reduce the frequency of events sent to fluentd, dont need so much data so dialing it down

* moving the metrics-start and argsparse stuff to top of start script, so that we can start seeing some results as the miners start ramping up

* Feature/start metrics sooner (#32)

* pushed back the watchdog updates when the miners are up, about 2mins in

* updated lock file

* disable verify_ssl=true, as directed at pypa/pipenv#871 to help mitigate the coloredlogs install issue as root

* updated lock file

* restoring ssl verify, didnt help with coloredlogs installation

* Feature/remove coloredlogs (#33)

* pushed back the watchdog updates when the miners are up, about 2mins in

* updated lock file

* disable verify_ssl=true, as directed at pypa/pipenv#871 to help mitigate the coloredlogs install issue as root

* updated lock file

* restoring ssl verify, didnt help with coloredlogs installation

* removing coloredlogs, no real value other than cosmetic ooaahh. will make it to a pain to scrape logs later because of the escape characters used for colors

* adding types to the parsed parameters. This was missing, causing all … (#35)

* adding types to the parsed parameters. This was missing, causing all sort of parsing/type problems in Grafana

* fixed small typo

* fixed the syntax for types in fluent.conf

* changing tag names
shuvozula added a commit to shuvozula/eth-runner that referenced this issue Jun 6, 2019
* increasing the display interval to reduce the frequency of events sent to fluentd, dont need so much data so dialing it down

* increasing the display interval to reduce the frequency of events sent to fluentd, dont need so much data so dialing it down

* moving the metrics-start and argsparse stuff to top of start script, so that we can start seeing some results as the miners start ramping up

* Feature/start metrics sooner (#32)

* pushed back the watchdog updates when the miners are up, about 2mins in

* updated lock file

* disable verify_ssl=true, as directed at pypa/pipenv#871 to help mitigate the coloredlogs install issue as root

* updated lock file

* restoring ssl verify, didnt help with coloredlogs installation

* Feature/remove coloredlogs (#33)

* pushed back the watchdog updates when the miners are up, about 2mins in

* updated lock file

* disable verify_ssl=true, as directed at pypa/pipenv#871 to help mitigate the coloredlogs install issue as root

* updated lock file

* restoring ssl verify, didnt help with coloredlogs installation

* removing coloredlogs, no real value other than cosmetic ooaahh. will make it to a pain to scrape logs later because of the escape characters used for colors

* adding types to the parsed parameters. This was missing, causing all … (#35)

* adding types to the parsed parameters. This was missing, causing all sort of parsing/type problems in Grafana

* fixed small typo

* fixed the syntax for types in fluent.conf

* changing tag names

* updating regex (#37)
shuvozula added a commit to shuvozula/eth-runner that referenced this issue Jul 5, 2019
* increasing the display interval to reduce the frequency of events sent to fluentd, dont need so much data so dialing it down

* increasing the display interval to reduce the frequency of events sent to fluentd, dont need so much data so dialing it down

* moving the metrics-start and argsparse stuff to top of start script, so that we can start seeing some results as the miners start ramping up

* Feature/start metrics sooner (#32)

* pushed back the watchdog updates when the miners are up, about 2mins in

* updated lock file

* disable verify_ssl=true, as directed at pypa/pipenv#871 to help mitigate the coloredlogs install issue as root

* updated lock file

* restoring ssl verify, didnt help with coloredlogs installation

* Feature/remove coloredlogs (#33)

* pushed back the watchdog updates when the miners are up, about 2mins in

* updated lock file

* disable verify_ssl=true, as directed at pypa/pipenv#871 to help mitigate the coloredlogs install issue as root

* updated lock file

* restoring ssl verify, didnt help with coloredlogs installation

* removing coloredlogs, no real value other than cosmetic ooaahh. will make it to a pain to scrape logs later because of the escape characters used for colors

* adding types to the parsed parameters. This was missing, causing all … (#35)

* adding types to the parsed parameters. This was missing, causing all sort of parsing/type problems in Grafana

* fixed small typo

* fixed the syntax for types in fluent.conf

* changing tag names

* updating regex (#37)

* reducing the timeout, maybe that will take care of the hang-loop

* added buffers for watchdogs, so that every little dip does not cause an alert (#39)

* changing to ethpool (#41)

* fixes to feature/add watchdog timewindow (#40)

* added buffers for watchdogs, so that every little dip does not cause an alert

* fixing the arg stuff

* adding the nvidia watchdog timeout to 2 mins

* changing back to ethermine, realized this is biased with the rules at ethpool. stick to ethermine

* increased poll-period to 30 seconds, fixed rtcwake timeout that was being set (#42)

* added buffers for watchdogs, so that every little dip does not cause an alert

* fixing the arg stuff

* adding the nvidia watchdog timeout to 2 mins

* increased the poll window to 30 seconds, was making the GPUs to crash for half second, tool less

* updating nvidia poll-timeout from 0.5 to 30 secs
shuvozula added a commit to shuvozula/eth-runner that referenced this issue Jul 7, 2019
* increasing the display interval to reduce the frequency of events sent to fluentd, dont need so much data so dialing it down

* increasing the display interval to reduce the frequency of events sent to fluentd, dont need so much data so dialing it down

* moving the metrics-start and argsparse stuff to top of start script, so that we can start seeing some results as the miners start ramping up

* Feature/start metrics sooner (#32)

* pushed back the watchdog updates when the miners are up, about 2mins in

* updated lock file

* disable verify_ssl=true, as directed at pypa/pipenv#871 to help mitigate the coloredlogs install issue as root

* updated lock file

* restoring ssl verify, didnt help with coloredlogs installation

* Feature/remove coloredlogs (#33)

* pushed back the watchdog updates when the miners are up, about 2mins in

* updated lock file

* disable verify_ssl=true, as directed at pypa/pipenv#871 to help mitigate the coloredlogs install issue as root

* updated lock file

* restoring ssl verify, didnt help with coloredlogs installation

* removing coloredlogs, no real value other than cosmetic ooaahh. will make it to a pain to scrape logs later because of the escape characters used for colors

* adding types to the parsed parameters. This was missing, causing all … (#35)

* adding types to the parsed parameters. This was missing, causing all sort of parsing/type problems in Grafana

* fixed small typo

* fixed the syntax for types in fluent.conf

* changing tag names

* updating regex (#37)

* reducing the timeout, maybe that will take care of the hang-loop

* added buffers for watchdogs, so that every little dip does not cause an alert (#39)

* changing to ethpool (#41)

* fixes to feature/add watchdog timewindow (#40)

* added buffers for watchdogs, so that every little dip does not cause an alert

* fixing the arg stuff

* adding the nvidia watchdog timeout to 2 mins

* changing back to ethermine, realized this is biased with the rules at ethpool. stick to ethermine

* increased poll-period to 30 seconds, fixed rtcwake timeout that was being set (#42)

* added buffers for watchdogs, so that every little dip does not cause an alert

* fixing the arg stuff

* adding the nvidia watchdog timeout to 2 mins

* increased the poll window to 30 seconds, was making the GPUs to crash for half second, tool less

* updating nvidia poll-timeout from 0.5 to 30 secs

* no, this needs to be multiplied by 60 from mins -> seconds
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants