在python返回中导入类不能导入名称错误

时间:2015-10-14 18:40:42

标签: python import importerror

我从我的第一个python项目开始,但我从一开始就遇到了问题。我试图弄清楚如何将一个类导入到我的main.py文件中。

我的目录结构是......

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

到目前为止,我已经 main.py ...

from player import Player

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

我收到以下错误...

  

追踪(最近一次通话):        文件" main.py",第1行,in         来自玩家导入播放器       ImportError:无法导入名称播放器

我有一个谷歌,但找不到任何有用的东西。有人可以帮忙吗?

我使用的是Python 2.7.10

更新

所以我的player.py包含

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

    def name(self):
        return self.name

我的 init .py文件为空

1 个答案:

答案 0 :(得分:2)

执行from player时,Python会在PYTHONPATH的根目录中查找名为player的模块。由于不存在此类模块,因此会出现错误。

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

from .player import Player

或者,如果这让人感到困惑,你可以使用绝对路径(game.player),如果安装正确,它应该在PYTHONPATH的根目录下。

from game.player import Player

但是,您无法始终保证用户始终在PYTHONPATH根目录下安装库,因此在同一库中导入模块时通常首选相对路径。有关详细信息,请参阅docs