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

Importing classes in python returns cannot import name error

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

我的目录结构是…

1
2
3
4
game
- __init__.py
- main.py
- player.py

到目前为止,我主要有。

1
2
3
4
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包含

1
2
3
4
5
6
class Player:
    def __init__(self, name):
        self.name = name

    def name(self):
        return self.name

我的init.py文件是空的


当执行from player操作时,python会在pythonpath的根处查找名为player的模块。由于不存在此类模块,因此会引发错误。

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

1
from .player import Player

或者,如果这让人困惑,您可以使用绝对路径(game.player),如果安装正确,它应该位于pythonpath的根。

1
from game.player import Player

但是,您不能总是保证库总是由用户安装在pythonpath根目录下,因此在同一个库中导入模块时,通常首选相对路径。有关更多信息,请参阅文档。