Python包导入错误--Python无法识别包

4

最近,在尝试导入我编写的模块时,我遇到了一些明显不应该发生的错误。这是我的想法,我正在main.py文件中编写代码,我的层次结构如下:

starsearch/
  main.py
  parser/
    __init__.py
    parse.py

parser/目录下的__init__.py文件是空的,但当我在我的程序中尝试:

import parser

出现了AttributeError错误。这是在我调用parse.py里的函数getstar()时发生的。

from parser import parse

出现了ImportError错误。

那么我的Python无法识别parse.py存在吗?我做了一些研究,发现一个空的__ init__.py文件应该就可以解决问题,但是我被难住了。


3
AttributeError 是因为包中的模块不是包的属性,你必须自己导入它们。 - Katriel
1
你可以像这样进行暴力导入:import sys sys.path.append('parser') import parser - mjgpy3
你可以更精确地说明返回的错误信息是什么(而不仅仅是它们的类型)吗? - Thomas Orozco
@mjgpy3 - 超级狂拽酷炫的家伙。即使对于Python也是如此 =) - Zvi
1个回答

1

parser是Python中一个内置模块的名称。 当你编写代码时

import parser

您需要导入内置模块。由于该模块不包含getstar()函数或解析模块,因此您可能会遇到AttributeError或ImportError错误

尝试将“parser”目录的名称更改为其他任何名称,这样就可以正常工作了。空的init.py文件是不必要的


成功了!谢谢,我一直在努力想弄清楚问题出在哪里。请问有没有Python模块命名的做与不做的列表? - Nick Taber

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接