没有名为“pkg_resources”的模块

Posted

技术标签:

【中文标题】没有名为“pkg_resources”的模块【英文标题】:No module named 'pkg_resources' 【发布时间】:2017-09-26 16:02:21 【问题描述】:

我尝试使用pip install tensorflow --upgrade 升级 tensorflow。 旧版setuptools卸载过程中出现错误:

PermissionError: [Errno 13] Permission denied: '/Users/<myName>/anaconda/lib/python3.5/site-packages/easy-install.pth'

FileNotFoundError: [Errno 2] No such file or directory: '/Users/<myName>/anaconda/lib/python3.5/site-packages/setuptools-27.2.0-py3.5.egg'

现在,当使用pip 时,我得到了No module named 'pkg_resources' 的错误。

我在线程No module named pkg_resources中尝试了解决方案:

使用

curl https://bootstrap.pypa.io/ez_setup.py | python

再次产生以下错误(使用sudo curl时也是如此):

error: [Errno 13] Permission denied: '/Users/<myName>/anaconda/lib/python3.5/site-packages/easy-install.pth'

按照建议尝试重新安装setuptools

pip install --upgrade setuptools

导致相同的No module named 'pkg_resources' 错误消息。

我使用的是 MacOS 10.12.4

【问题讨论】:

/Users/&lt;myName&gt;/anaconda/lib/python3.5//Users/&lt;myName&gt;/anaconda/lib/python3.5/site-å/的文件权限是什么? 我在.../python3.5/site-packages 文件夹中有drwx 的权限,但不知何故,easy-install.pth 是该文件夹中我刚刚获得rw 权限的唯一文件。 尝试执行chmod +x easy-install.pth获取执行权限。 .pth 文件缺少d 权限是正常的,因为它是文件而不是目录。 我认为您过去可能已经运行了一些sudo 命令,它也混合了文件的所有者。尝试将所有者从sudo更改为您自己的用户帐户,并检查错误是否解决。 解决了。 【参考方案1】:

首先:当你通过sudo 执行任何命令时,你应该始终小心——这可能真的会搞砸你的文件权限。看起来,这正是这里发生的事情。您的用户帐户必须接管easy-install.pth 的权限。尝试执行

sudo chown myuser easy-install.pth
chmod +x easy-install.pth

然后继续

curl https://bootstrap.pypa.io/ez_setup.py | python

命令来解决您的No module named 'pkg_resources' 问题。现在你的pip 应该可以再次工作了。 然后尝试使用pip install tensorflow --upgrade 再次升级tensorflow 并检查这是否解决了您的问题。

【讨论】:

以上是关于没有名为“pkg_resources”的模块的主要内容,如果未能解决你的问题,请参考以下文章

Python:ImportError:没有名为 pkg_resources 的模块 [重复]

AttributeError:模块 'pkg_resources' 没有属性 'safe_name' oauthlib 安装

Yandex 水箱不工作

解决一些python的问题记录

pkg_resources.resource_filename 没有提取文件

执行 cx_Freeze setup.py 后,cmd 中没有任何反应