Skip to content

Circular imports in pip._vendor.requests #6498

@ionelmc

Description

@ionelmc

Looks like since pip 18.1 there's a circular import problem. All versions including 18.1 and 19.1.1 produce something like this (traceback from 19.1.1 release):

Traceback (most recent call last):
  File "/usr/local/bin/pip", line 7, in <module>
    from pip._internal import main
  File "/usr/local/lib/python2.7/dist-packages/pip/_internal/__init__.py", line 40, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/usr/local/lib/python2.7/dist-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/usr/local/lib/python2.7/dist-packages/pip/_internal/cli/main_parser.py", line 12, in <module>
    from pip._internal.commands import (
  File "/usr/local/lib/python2.7/dist-packages/pip/_internal/commands/__init__.py", line 6, in <module>
    from pip._internal.commands.completion import CompletionCommand
  File "/usr/local/lib/python2.7/dist-packages/pip/_internal/commands/completion.py", line 6, in <module>
    from pip._internal.cli.base_command import Command
  File "/usr/local/lib/python2.7/dist-packages/pip/_internal/cli/base_command.py", line 25, in <module>
    from pip._internal.index import PackageFinder
  File "/usr/local/lib/python2.7/dist-packages/pip/_internal/index.py", line 39, in <module>
    from pip._internal.utils.packaging import check_requires_python
  File "/usr/local/lib/python2.7/dist-packages/pip/_internal/utils/packaging.py", line 10, in <module>
    from pip._internal import exceptions
ImportError: cannot import name exceptions

Contents of the bin script:

$ cat `which pip`                                                                                                                                  #!/usr/bin/python2.7

# -*- coding: utf-8 -*-
import re
import sys

from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

Note that 18.0 doesn't have the problem.

This happens on Ubuntu 18.04 if it matters (yes, pip is installed globally, python-pip deb package not installed of course).

Metadata

Metadata

Assignees

No one assigned

    Labels

    auto-lockedOutdated issues that have been locked by automationtype: maintenanceRelated to Development and Maintenance Processes
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions