AttributeError: 'NoneType' 对象没有属性 'loader'

Posted

技术标签:

【中文标题】AttributeError: \'NoneType\' 对象没有属性 \'loader\'【英文标题】:AttributeError: 'NoneType' object has no attribute 'loader'AttributeError: 'NoneType' 对象没有属性 'loader' 【发布时间】:2019-07-08 13:12:21 【问题描述】:

今天我启动笔记本电脑 (Ubuntu 18.4) 并尝试使用 pip 安装软件包时遇到问题,我遇到了这个错误:

Error processing line 3 of /home/cjones/.local/lib/python3.6/site-packages/googleapis_common_protos-1.5.8-py3.6-nspkg.pth:

  Traceback (most recent call last):
    File "/usr/lib/python3.6/site.py", line 174, in addpackage
      exec(line)
    File "<string>", line 1, in <module>
    File "<frozen importlib._bootstrap>", line 568, in module_from_spec
  AttributeError: 'NoneType' object has no attribute 'loader'

Remainder of file ignored

自上次成功启动以来,我认为我没有更改任何内容,但似乎缺少某些内容...有人可以帮忙吗?

【问题讨论】:

【参考方案1】:

删除/home/cjones/.local/lib/python3.6/site-packages/googleapis_common_protos-1.5.8-py3.6-nspkg.pth 并重试。

【讨论】:

能否解释一下这是如何工作的?我有这个错误,是由于一个旧包被移动/重新命名,但 .pth 文件仍然指向原始位置 我相信他们的意思如果你有一个错误 Error processing line 3 of file_name 只是摆脱 file_name 导致错误。【参考方案2】:

我遇到了类似的问题,但错误消息引用了不同的 .pth 文件。我收到的错误信息是:

Error processing line 1 of /Users/jt/anaconda3/lib/python3.7/site-packages/sphinxcontrib.datatemplates-nspkg.pth:

  Traceback (most recent call last):
    File "/Users/jt/anaconda3/lib/python3.7/site.py", line 168, in addpackage
      exec(line)
    File "<string>", line 1, in <module>
    File "<frozen importlib._bootstrap>", line 580, in module_from_spec
  AttributeError: 'NoneType' object has no attribute 'loader'

Remainder of file ignored

按照此处描述的解决方案:

https://github.com/Pyomo/pyomo/issues/95

我编辑了 .pth 文件(错误消息开头的文件,紧跟在文本 Error processing line 1 of 之后)并在第一个分号后添加了一个换行符。也就是我变了:

import sys, types, os;has_mfs = sys.version_info > (3, 5);p ...<rest of file>

收件人:

import sys, types, os;
has_mfs = sys.version_info > (3, 5);p ...<rest of file>

我不知道为什么会这样,但确实有效。

【讨论】:

【参考方案3】:

我在 Mac 上的虚拟环境中遇到了类似的错误,但指的是 matplotlib:

错误处理//anaconda3/lib/python3.7/site-packages/matplotlib-3.1.3-py3.7-nspkg.pth的第1行:

和上一个答案一样,通过更改提到的文件来解决:

import sys, types, os;has_mfs = sys.version_info > (3, 5);p = os.path.join(sys._getframe(1).$

为此,通过换行符:

import sys, types, os;
has_mfs = sys.version_info > (3, 5);p = os.path.join(sys._getframe(1).$

【讨论】:

【参考方案4】:

我必须在 vi 中执行 :0,$s/;/;\r/g。

看起来一行太长,pip3 无法处理。基本上,有些包将所有命令放在一行中,这会在某处溢出缓冲区。

此 vi 命令在每个分号后放置一个回车符。 (换行符 (\n) 可能会代替回车符。)

命令分解:

: - use ED line editor command
0,$ - run on all lines
s - regular expression substitution
/ - delimiter start search
; - replace semicolon with
/ - delimiter end search start replace
;\r - replace with semicolon followed by carriage return
/ - delimiter end replace
g - global - do more than once per line.

这是一个非常常见的 vi 命令。如果需要替换“/”,可以使用另一个字符作为分隔符——“s”之后的第一个字符是分隔符

【讨论】:

能否请您在说明中更清楚一些? 它看起来很糟糕,请详细说明【参考方案5】:

该行太长,pip3 无法处理。 您可以重新安装 googleapis_common_protos 来解决此问题。 这意味着你可以运行这个:

pip uninstall googleapis_common_protospip install googleapis_common_protos

【讨论】:

以上是关于AttributeError: 'NoneType' 对象没有属性 'loader'的主要内容,如果未能解决你的问题,请参考以下文章

AttributeError:'NoneType'对象没有属性'upper'[关闭]

%Matplotlib - AttributeError: 'NoneType' 对象没有属性 'lower'

BeautifulSoup:AttributeError:“NoneType”对象没有属性“文本”

Elastic Beanstalk 部署错误:AttributeError :: 'NoneType' 对象没有属性 'split'

AttributeError:“NoneType”对象没有“当前”属性

每次我使用 pip 时都会出现“AttributeError:'NoneType'”