python-pip 似乎在 Arch Linux 上被破坏了(没有名为 'pip._vendor.retrying' 的模块)

标签 python python-3.x pip archlinux

系统更新后,我在尝试调用 pip 时收到此错误(或 pip3.7pip3 ):

  $ 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'

相关目录似乎存在并且属于正确的包

  $ 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

卸载重装没有区别

  $ 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包括

  • ssl 与此相关,但是 python3 -c "import ssl"运行没有问题

  • python-requests可能不见了,但它就在那里。卸载和重新安装没有区别。

  • python-setuptools可能不见了,但它就在那里。卸载和重新安装没有区别。

  • pip uninstall pkg-resources==0.0.0 , 但这当然失败了,因为 pip 没有启动

  • curl -sS <a href="https://bootstrap.pypa.io/get-pip.py" rel="noreferrer noopener nofollow">https://bootstrap.pypa.io/get-pip.py</a> | sudo python3 重新安装 pip .我没有尝试。我宁愿不这样做,因为我认为它会以某种方式导致依赖性噩梦

可能值得注意的是,我曾经有不同的 python 3 版本。我不得不暂时从 AUR 安装 3.6,因为我不得不使用不能与 3.7 一起工作的软件。但是3.6现在没有了,只剩下标准的3.7了。

系统是Arch Linux 5.2.1,python是3.7.3。

最佳答案

您可以尝试直接从 python(或 python3)重新安装损坏的 pip,而不是使用系统包管理器(吃 bean )。请注意 Arch Linux,但对我来说它解决了 Ubuntu 16.04 上的类似问题(ModuleNotFoundError: No module named 'pip._vendor.retrying'):

$ sudo python -m pip install --upgrade pip

关于python-pip 似乎在 Arch Linux 上被破坏了(没有名为 'pip._vendor.retrying' 的模块),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57097514/

相关文章:

python - 从 perl 调用 python 方法

python - 如何在 python 3.6 中键入 hinte 高阶函数?

python - 如何修复 "cannot import name ' get_seomoz_data' from 'api' “Python 中的错误

python - 使用 libcurl4 导入 pycurl 会引发 ImportError

python - 从通过 `sys.path` 安装的 `pip install -e` 中删除包路径

python - 使用 pip 从源安装 pytorch

python - 如何在 Pandas 中将面板与系列相乘

python - 每个表的 Django 模型与每个选择的模型

python - argparse 选项 arg 在子解析器中的位置 arg 之前使用 nargs ='?'

python-3.x - FastAPI + Tortoise ORM 出现 KeyError : '__module__' on pydantic_model_creator