我从我的第一个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文件为空
答案 0 :(得分:2)
执行from player
时,Python会在PYTHONPATH的根目录中查找名为player
的模块。由于不存在此类模块,因此会出现错误。
通过使用相对导入(在模板名称前加一个点),您可以告诉Python在与当前文件相同的目录中查找模块。像这样:
from .player import Player
或者,如果这让人感到困惑,你可以使用绝对路径(game.player
),如果安装正确,它应该在PYTHONPATH的根目录下。
from game.player import Player
但是,您无法始终保证用户始终在PYTHONPATH根目录下安装库,因此在同一库中导入模块时通常首选相对路径。有关详细信息,请参阅docs。