0range
0range

Reputation: 2158

python-pip seems to be broken on Arch Linux (No module named 'pip._vendor.retrying')

After a system update, I receive this error when trying to call pip (or pip3.7 or pip3):

  $ pip3.7
Traceback (most recent call last):
  File "/usr/bin/pip3.7", line 11, in <module>
    load_entry_point('pip==19.0.3', 'console_scripts', 'pip3.7')()
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 489, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2843, in load_entry_point
    return ep.load()
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2434, in load
    return self.resolve()
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2440, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python3.7/site-packages/pip/_internal/__init__.py", line 40, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/usr/lib/python3.7/site-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/usr/lib/python3.7/site-packages/pip/_internal/cli/main_parser.py", line 8, in <module>
    from pip._internal.cli import cmdoptions
  File "/usr/lib/python3.7/site-packages/pip/_internal/cli/cmdoptions.py", line 22, in <module>
    from pip._internal.utils.hashes import STRONG_HASHES
  File "/usr/lib/python3.7/site-packages/pip/_internal/utils/hashes.py", line 10, in <module>
    from pip._internal.utils.misc import read_chunks
  File "/usr/lib/python3.7/site-packages/pip/_internal/utils/misc.py", line 24, in <module>
    from pip._vendor.retrying import retry  # type: ignore
ModuleNotFoundError: No module named 'pip._vendor.retrying'

The relevant directory seems to exist and to be owned by the right package

  $ ls /usr/lib/python3.7/site-packages/pip/_vendor
__init__.py  __pycache__
  $ sudo pacman -Qo /usr/lib/python3.7/site-packages/pip/_vendor
/usr/lib/python3.7/site-packages/pip/_vendor/ is owned by python-pip 19.0.3-1

Uninstalling and reinstalling makes no difference

  $ sudo pacman -Rv --noconfirm python-pip
Root      : /
Conf File : /etc/pacman.conf
DB Path   : /var/lib/pacman/
Cache Dirs: /var/cache/pacman/pkg/  
Hook Dirs : /usr/share/libalpm/hooks/  /etc/pacman.d/hooks/  
Lock File : /var/lib/pacman/db.lck
Log File  : /var/log/pacman.log
GPG Dir   : /etc/pacman.d/gnupg/
Targets   : python-pip
checking dependencies...
:: python optionally requires python-pip

Packages (1) python-pip-19.0.3-1

Total Removed Size:  1.06 MiB

:: Do you want to remove these packages? [Y/n] 
:: Processing package changes...
(1/1) removing python-pip                                                                                                                      [########################################################################################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
  $ sudo pacman -Qo /usr/lib/python3.7/site-packages/pip/_vendor
error: No package owns /usr/lib/python3.7/site-packages/pip/_vendor
  $ ls /usr/lib/python3.7/site-packages/pip/_vendor
ls: cannot access '/usr/lib/python3.7/site-packages/pip/_vendor': No such file or directory
  $ ls /usr/lib/python3.7/site-packages/pip
ls: cannot access '/usr/lib/python3.7/site-packages/pip': No such file or directory
  $ pip3.7
bash: /usr/bin/pip3.7: No such file or directory
  $ sudo pacman -Sv --noconfirm python-pip
Root      : /
Conf File : /etc/pacman.conf
DB Path   : /var/lib/pacman/
Cache Dirs: /var/cache/pacman/pkg/  
Hook Dirs : /usr/share/libalpm/hooks/  /etc/pacman.d/hooks/  
Lock File : /var/lib/pacman/db.lck
Log File  : /var/log/pacman.log
GPG Dir   : /etc/pacman.d/gnupg/
Targets   : python-pip
resolving dependencies...
looking for conflicting packages...

Packages (1) python-pip-19.0.3-1

Total Installed Size:  1.06 MiB

:: Proceed with installation? [Y/n] 
(1/1) checking keys in keyring                                                                                                                 [########################################################################################] 100%
(1/1) checking package integrity                                                                                                               [########################################################################################] 100%
(1/1) loading package files                                                                                                                    [########################################################################################] 100%
(1/1) checking for file conflicts                                                                                                              [########################################################################################] 100%
(1/1) checking available disk space                                                                                                            [########################################################################################] 100%
:: Processing package changes...
(1/1) installing python-pip                                                                                                                    [########################################################################################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
  $ sudo pacman -Qo /usr/lib/python3.7/site-packages/pip/_vendor
/usr/lib/python3.7/site-packages/pip/_vendor/ is owned by python-pip 19.0.3-1
  $ ls /usr/lib/python3.7/site-packages/pip/_vendor
__init__.py  __pycache__
  $ pip3.7
Traceback (most recent call last):
  File "/usr/bin/pip3.7", line 11, in <module>
    load_entry_point('pip==19.0.3', 'console_scripts', 'pip3.7')()
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 489, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2843, in load_entry_point
    return ep.load()
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2434, in load
    return self.resolve()
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2440, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python3.7/site-packages/pip/_internal/__init__.py", line 40, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/usr/lib/python3.7/site-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/usr/lib/python3.7/site-packages/pip/_internal/cli/main_parser.py", line 8, in <module>
    from pip._internal.cli import cmdoptions
  File "/usr/lib/python3.7/site-packages/pip/_internal/cli/cmdoptions.py", line 22, in <module>
    from pip._internal.utils.hashes import STRONG_HASHES
  File "/usr/lib/python3.7/site-packages/pip/_internal/utils/hashes.py", line 10, in <module>
    from pip._internal.utils.misc import read_chunks
  File "/usr/lib/python3.7/site-packages/pip/_internal/utils/misc.py", line 24, in <module>
    from pip._vendor.retrying import retry  # type: ignore
ModuleNotFoundError: No module named 'pip._vendor.retrying'

Other suggested solutions include

It may be noteworthy that I used to have different python 3 version. I had to temporarily install 3.6 from AUR since I had to work with software that did not work with 3.7. But 3.6 it is gone now with only the standard 3.7 left.

The system is Arch Linux 5.2.1, python is 3.7.3.

Upvotes: 4

Views: 6302

Answers (1)

luart
luart

Reputation: 1451

You can try to reinstall the broken pip directly from python (or python3) rather than using the system package manager (pacman). Note sure about Arch Linux, but for me it solved the similar issue (ModuleNotFoundError: No module named 'pip._vendor.retrying') on Ubuntu 16.04:

$ sudo python -m pip install --upgrade pip

Upvotes: 5

Related Questions