2015-10-14 152 views
0

我刚开始使用我的第一个python项目,但我从一开始就遇到了问题。我想弄清楚如何将一个类导入到我的main.py文件中。在python中导入类返回无法导入名称错误

我的目录结构...

game 
- __init__.py 
- main.py 
- player.py 

到目前为止,我有在main.py ...

from player import Player 

player1 = Player("Ben") 
print player1.name 

我得到以下错误...

Traceback (most recent call last): File "main.py", line 1, in from player import Player ImportError: cannot import name Player

我已经有一个谷歌,但找不到任何工作。有人可以帮忙吗?

我使用Python 2.7.10

更新

所以我player.py包含

class Player: 
    def __init__(self, name): 
     self.name = name 

    def name(self): 
     return self.name 

和我初始化 .py文件是空

+1

向我们展示'player.py'的完整内容。 – Kevin

+1

为此向我们展示了'__init __。py'和'player.py'中的内容。 –

+2

当你遇到错误时,你在哪里调用脚本?我怀疑'player.py'不在'PYTHONPATH'上 –

回答

1

当你做from player Python寻找一个名为的模块在PYTHONPATH的根部。由于不存在这样的模块,所以会引发错误。

通过使用相对导入(在模块名称前加一个点),您告诉Python在与当前文件相同的目录中查找模块。就像这样:

from .player import Player 

或者,如果得到令人困惑,你可以使用安装是否正确这应该是在PYTHONPATH的根的绝对路径(game.player)。

from game.player import Player 

但是,你不能总是保证库将始终在PYTHONPATH根被用户安装,所以在同一个库中导入模块时,相对路径通常是优选的。有关更多信息,请参阅docs

相关问题