Pip-tools: pip_compat AttributeError: module 'pip._internal.download' has no attribute 'is_file_url'

Created on 6 Nov 2019  路  8Comments  路  Source: jazzband/pip-tools

I'm getting an AttributeError where pip-sync fails due to a dependency on pip._internal. It seems pretty weird that pip-tools depends on pip._internal.

Of note, this is occurring on a remote machine. On my desktop, I have the same version of python, pip-tools, and pip installed, and this does not occur.

Version info & stack trace:

Version information:

(python-env) $ python3 --version
Python 3.7.5rc1
(python-env) $ pip --version
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)

This is piptools version 3.2.0

Traceback:

(python-env) $ pip-sync
Traceback (most recent call last):
File "/var/lib/.../automation/python-env/bin/pip-sync", line 5, in
from piptools.scripts.sync import cli
File "/var/lib/.../automation/python-env/lib/python3.7/site-packages/piptools/scripts/sync.py", line 9, in
from .. import click, sync
File "/var/lib/.../automation/python-env/lib/python3.7/site-packages/piptools/sync.py", line 8, in
from .utils import flat_map, format_requirement, key_from_ireq, key_from_req
File "/var/lib/.../automation/python-env/lib/python3.7/site-packages/piptools/utils.py", line 11, in
from ._compat import install_req_from_line
File "/var/lib/.../automation/python-env/lib/python3.7/site-packages/piptools/_compat/__init__.py", line 15, in
from .pip_compat import (
File "/var/lib/.../automation/python-env/lib/python3.7/site-packages/piptools/_compat/pip_compat.py", line 29, in
is_file_url = do_import('download', 'is_file_url')
File "/var/lib/.../automation/python-env/lib/python3.7/site-packages/piptools/_compat/pip_compat.py", line 21, in do_import
return getattr(imported, package)
AttributeError: module 'pip._internal.download' has no attribute 'is_file_url'

Sorry but the file paths are slightly censored for confidentiality. Can provide additional information upon request.

support

Most helpful comment

@matt-hayden pip-tools>=4.2.0 is compatible with pip>=19.3. Better to upgrade pip-tools.

All 8 comments

Hi!

Just an update. The version of pip I posted was incorrect. Within the virtual environment, it was actually 19.3 on the remote machine.

The fix in this case was as simple as:

pip install --upgrade pip=18.1

I am getting this same error when running pip-compile to update package requirements in an Alpine Linux docker container.

Pip3 version in the container is 19.3, pip-tools version is 4.2.0, and python version is 3.6.8. According to release notes, the new pip-tools version should have compatibility with pip version 19.3, yet I still get this error.

I temporarily solved this by pinning our pip version to 19.2 which let's me use pip-compile normally

Traceback (most recent call last): File "/usr/local/bin/pip-compile", line 5, in <module> from piptools.scripts.compile import cli File "/usr/local/lib/python3.6/site-packages/piptools/scripts/compile.py", line 11, in <module> from .._compat import InstallCommand, install_req_from_line, parse_requirements File "/usr/local/lib/python3.6/site-packages/piptools/_compat/__init__.py", line 7, in <module> from .pip_compat import ( File "/usr/local/lib/python3.6/site-packages/piptools/_compat/pip_compat.py", line 35, in <module> is_file_url = do_import("download", "is_file_url") File "/usr/local/lib/python3.6/site-packages/piptools/_compat/pip_compat.py", line 24, in do_import return getattr(imported, package) AttributeError: module 'pip._internal.download' has no attribute 'is_file_url'

@cwilliamson226 looks like you are using pip<19.3 version. Could you show the output of the following commands?

$ pip-compile --version
$ pip --version
$ pip2 --version
$ pip3 --version

Alright, I must be going crazy because I can't replicate the error now. Sorry about that

@cwilliamson226 no worries, reach us out if you have any other issues 馃憤

Will do, I appreciate the prompt responses 馃檹

Ditto, downgrading from 19.3 to 19.2 solved it for me. Python 2.7, pip-compile 3.1.0, 64-bit Linux.

@matt-hayden pip-tools>=4.2.0 is compatible with pip>=19.3. Better to upgrade pip-tools.

Was this page helpful?
0 / 5 - 0 ratings