gpt4 book ai didi

python - 导入错误: No module named 'pkg_resources.extern.six.moves' ; 'pkg_resources.extern.six' is not a package

转载 作者:行者123 更新时间:2023-12-01 03:47:49 24 4
gpt4 key购买 nike

我无法导入 pkg_resources。每当我尝试时它都会显示

Python 3.5.2 (default, Jun 28 2016, 08:46:01) 
[GCC 6.1.1 20160602] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pkg_resources
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 47, in <module>
from pkg_resources.extern.six.moves import urllib, map, filter
ImportError: No module named 'pkg_resources.extern.six.moves'; 'pkg_resources.extern.six' is not a package

from pkg_resources引用/usr/lib/python3.5/site-packages/pkg_resources/extern(其中没有六个包)。你能指出我做错了什么吗?

我使用的是 Arch Linux,Python 3.5.2

最佳答案

嗯,那里没有six包。 six 只是定义在

中的名称
/usr/lib/python3.5/site-packages/pkg_resources/extern/__init__.py

准确地说,它看起来如下:

names = 'packaging', 'pyparsing', 'six'
VendorImporter(__name__, names).install()

但是 VendorImporter 是一个相当不常见的 python 片段,它是 setuptools 的一部分,因此我猜它是可以预期的。简而言之,它执行以下导入:

/usr/lib/python3.5/site-packages/six.py

其中确实包含移动,好吧:

_MovedItems._moved_attributes = _moved_attributes

moves = _MovedItems(__name__ + ".moves")
_importer._add_module(moves, "moves")
<小时/>

现在让我们看看 pacman 如何处理这个问题:

# pacman -Qo /usr/lib/python3.5/site-packages/pkg_resources/extern/__init__.py
/usr/lib/python3.5/site-packages/pkg_resources/extern/__init__.py is owned by python-setuptools 1:25.1.3-1

没错,extern/__init__.py 属于 setuptools,这正是我们所期望的。现在

# pacman -Qo /usr/lib/python3.5/site-packages/six.py
/usr/lib/python3.5/site-packages/six.py is owned by python-six 1.10.0-2

我们看到 6python-6 的一部分。

因此,我们发现 python-setuptools 依赖于 python-6python-setuptools dependency chain因此是不正确的,因为它没有列出 python-6,这是包管理器有时会发生的事情(不仅是 pacman,而且所有包管理器都遭受依赖链的问题不时)。

对于当前的问题,您需要手动安装python-6,然后python-setuptools将按预期工作:

pacman -S python-six

关于python - 导入错误: No module named 'pkg_resources.extern.six.moves' ; 'pkg_resources.extern.six' is not a package,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38719356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com