2016-09-27 125 views
0

我无法在python模块上导入类。Python导入错误:'无法导入名称'

这里是我的目录结构:在该行

_wikiSpider 
    +scrapy.cfg 
    _wikiSpider 
    +__init__.py 
    +items.py 
    +items.pyc 
    +settings.py 
    +settings.pyc 
    +pipelines.py 
    _spiders 
    +__init__.py 
    +__init__.pyc 
    +articleSpider.py 
    +articleSpider.pyc 
    +items.py 

代码游:

from wikiSpider.items import Article 

林不知道为什么,因为类的文章是items.py(最深的文件夹)

定义

有人可以给我一个解释吗?

+0

尝试删除pyc文件并重新运行 – MrPandav

+0

也。为什么您有两个项目class ij wikiSpider和一个在Spider目录 – MrPandav

+0

不幸的是没有工作... – Jacs

回答

1

您在根和_spiders文件夹中都有items.py。要引用子文件夹中的文件,您需要文件夹名称和文件。

从_spiders.items进口第二十

假设进口该代码的文件是在你的根目录下。 Python使用你在这里,当前的文件位置,因为它是目录层次结构。

0
from main wikiSpider directive try: 

from _wikiSpider._spiders.items import Article 


orelse from terminal open your _spiders directive and try: 

from items import Article 

这里我们要打开我们创建Article类的items.py文件,所以当你给了一些错误的指示或文件时,它无法找到您所创建的items.py文件,因此它显示“无法导入错误'

1

与其他人一样,我没有循环引用问题。尽管如此,我想在这里概括一下这个解决方案。

任何文件名冲突都可能导致此问题。你可以有多个同名的子文件(如上)。

或者它可能是你在

例如,工作文件:trello.py作为宠物项目。 from trello import TrelloApi

导入引用将在导入pip安装包之前导入自身。尝试直接导入trello和引用对象将失败,并且“NameError:name”未定义“

相关问题