2014-06-21 127 views
0

我遇到导入错误导入错误:无法导入名称SlotMap

Traceback (most recent call last): 
    File "C:\Users\bartis\Desktop\Python\TEC-KB\SlotMapper.pyw", line 9, in <module> 
    from SlotMapper import SlotMap 
    File "C:\Users\bartis\Desktop\Python\TEC-KB\SlotMapper.pyw", line 9, in <module> 
    from SlotMapper import SlotMap 
ImportError: cannot import name 'SlotMap 

这应该是一个简单的问题,但我似乎无法找出问题所在。如果我将SlotMapper.py文件放在与我正在使用的GUI相同的目录中,则SlotMap的导入不会发生错误。如果我将文件移动到当前工作目录下的某个目录并添加 - sys.path.append(os.path.join(os.getcwd(), 'appLib'))我收到上述错误。请参阅下面的导入语句和修改PYTHONPATH。我知道PYTHONPATH在我从调试器中检查后已被修改。我也知道,因为GUI下需要appLib来运行其他文件。最后,我已经检查了所有导入的文件以获得循环引用,并且找不到...因此卡住了。任何建议欢迎

import os 
import sys 

sys.path.append(os.path.join(os.getcwd(), 'appLib', 'KB-GUI')) 
sys.path.append(os.path.join(os.getcwd(), 'appLib')) 

from tkinter import * 

from SlotMapper import SlotMap 
from ShelfTypeSelection import ShelfTypeSelector 
from PackTypeSelection import PackTypeSlotMappingSelector 
from EntryWidgets import EntryBase, ShelfSlotEntry 

回答

1

这是行不通的原因是因为您的文件被命名为SlotMapper.pyw。该行

from SlotMapper import SlotMap 

正试图从您当前的文件导入SlotMap,因此错误。尝试将您的文件重命名为slotmapper_test.pyw或类似的东西,一切都应按预期工作。你不希望你的代码文件与你想要导入的模块名称相同,因为导入机制会首先尝试在那里找到类/函数,而不是先搜索你的模块。

相关问题