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

nbviewer in requirements breaks pip-compile #996

Open
sdbbs opened this issue Jan 27, 2022 · 0 comments
Open

nbviewer in requirements breaks pip-compile #996

sdbbs opened this issue Jan 27, 2022 · 0 comments

Comments

@sdbbs
Copy link

sdbbs commented Jan 27, 2022

Describe the bug

I am working inside an Ubuntu 20.04 Docker image, where Docker is running in Windows 10.

# cat /etc/issue
Ubuntu 20.04.3 LTS \n \l

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.3 LTS
Release:        20.04
Codename:       focal
# uname -a
Linux 1e2b03352168 5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

# python3 --version
Python 3.8.10
# pip3 --version
pip 21.3.1 from /usr/local/lib/python3.8/dist-packages/pip (python 3.8)

To Reproduce
Steps to reproduce the behavior:

First, let's confirm that pip-compile in itself is fine:

# echo pip-tools > req.in
# cat req.in
pip-tools
# pip-compile req.in
#
# This file is autogenerated by pip-compile with python 3.8
# To update, run:
#
#    pip-compile req.in
#
click==8.0.3
    # via pip-tools
pep517==0.12.0
    # via pip-tools
pip-tools==6.4.0
    # via -r req.in
tomli==2.0.0
    # via pep517
wheel==0.37.1
    # via pip-tools

# The following packages are considered to be unsafe in a requirements file:
# pip
# setuptools

Ok, it seems it works. Now, let's try nbviewer as (the sole) requirement:

# echo nbviewer > req.in
# cat req.in
nbviewer
# pip-compile req.in
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-resolver-njyh27nz/futures/setup.py'"'"'; __file__='"'"'/tmp/pip-resolver-njyh27nz/futures/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-snm5v3mu
         cwd: /tmp/pip-resolver-njyh27nz/futures/
    Complete output (24 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/usr/local/lib/python3.8/dist-packages/setuptools/__init__.py", line 18, in <module>
        from setuptools.dist import Distribution
      File "/usr/local/lib/python3.8/dist-packages/setuptools/dist.py", line 31, in <module>
        from setuptools.extern.more_itertools import unique_everseen
      File "<frozen importlib._bootstrap>", line 991, in _find_and_load
      File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 657, in _load_unlocked
      File "<frozen importlib._bootstrap>", line 556, in module_from_spec
      File "/usr/local/lib/python3.8/dist-packages/setuptools/extern/__init__.py", line 52, in create_module
        return self.load_module(spec.name)
      File "/usr/local/lib/python3.8/dist-packages/setuptools/extern/__init__.py", line 37, in load_module
        __import__(extant)
      File "/usr/local/lib/python3.8/dist-packages/setuptools/_vendor/more_itertools/__init__.py", line 1, in <module>
        from .more import *  # noqa
      File "/usr/local/lib/python3.8/dist-packages/setuptools/_vendor/more_itertools/more.py", line 5, in <module>
        from concurrent.futures import ThreadPoolExecutor
      File "/tmp/pip-resolver-njyh27nz/futures/concurrent/futures/__init__.py", line 8, in <module>
        from concurrent.futures._base import (FIRST_COMPLETED,
      File "/tmp/pip-resolver-njyh27nz/futures/concurrent/futures/_base.py", line 357
        raise type(self._exception), self._exception, self._traceback
                                   ^
    SyntaxError: invalid syntax
    ----------------------------------------
Traceback (most recent call last):
  File "/usr/local/bin/pip-compile", line 8, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1128, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/piptools/scripts/compile.py", line 466, in cli
    results = resolver.resolve(max_rounds=max_rounds)
  File "/usr/local/lib/python3.8/dist-packages/piptools/resolver.py", line 175, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/usr/local/lib/python3.8/dist-packages/piptools/resolver.py", line 319, in _resolve_one_round
    their_constraints.extend(self._iter_dependencies(best_match))
  File "/usr/local/lib/python3.8/dist-packages/piptools/resolver.py", line 428, in _iter_dependencies
    dependencies = self.repository.get_dependencies(ireq)
  File "/usr/local/lib/python3.8/dist-packages/piptools/repositories/local.py", line 79, in get_dependencies
    return self.repository.get_dependencies(ireq)
  File "/usr/local/lib/python3.8/dist-packages/piptools/repositories/pypi.py", line 236, in get_dependencies
    self._dependencies_cache[ireq] = self.resolve_reqs(
  File "/usr/local/lib/python3.8/dist-packages/piptools/repositories/pypi.py", line 199, in resolve_reqs
    results = resolver._resolve_one(reqset, ireq)
  File "/usr/local/lib/python3.8/dist-packages/pip/_internal/resolution/legacy/resolver.py", line 379, in _resolve_one
    dist = self._get_dist_for(req_to_install)
  File "/usr/local/lib/python3.8/dist-packages/pip/_internal/resolution/legacy/resolver.py", line 332, in _get_dist_for
    dist = self.preparer.prepare_linked_requirement(req)
  File "/usr/local/lib/python3.8/dist-packages/pip/_internal/operations/prepare.py", line 482, in prepare_linked_requirement
    return self._prepare_linked_requirement(req, parallel_builds)
  File "/usr/local/lib/python3.8/dist-packages/pip/_internal/operations/prepare.py", line 546, in _prepare_linked_requirement
    dist = _get_prepared_distribution(
  File "/usr/local/lib/python3.8/dist-packages/pip/_internal/operations/prepare.py", line 58, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(finder, build_isolation)
  File "/usr/local/lib/python3.8/dist-packages/pip/_internal/distributions/sdist.py", line 49, in prepare_distribution_metadata
    self.req.prepare_metadata()
  File "/usr/local/lib/python3.8/dist-packages/pip/_internal/req/req_install.py", line 561, in prepare_metadata
    self.metadata_directory = generate_metadata_legacy(
  File "/usr/local/lib/python3.8/dist-packages/pip/_internal/operations/build/metadata_legacy.py", line 59, in generate_metadata
    call_subprocess(
  File "/usr/local/lib/python3.8/dist-packages/pip/_internal/utils/subprocess.py", line 254, in call_subprocess
    raise InstallationSubprocessError(proc.returncode, command_desc)
pip._internal.exceptions.InstallationSubprocessError: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Expected behavior

It should be possible to have nbviewer in the requirements.in file, and have pip-compile find its dependencies, without crashing.

Additional context

Possibly related:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant