2015-10-14 125 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