Pygame在子目录中找不到图像文件夹

时间:2017-11-30 15:31:43

标签: python pygame

我一直在重构我的游戏,以便将一些文件放在名为/ lib / [下面的文件结构]的子目录中。

其中两个文件是名为media.py的python文件,以及一个名为media的文件夹。 Media.py几乎是这段代码的几行:

blue = pygame.image.load(os.path.join('media', 'blue.png')).convert_alpha()

当我将media.py和媒体文件夹放在lib中并运行media.py时,它完全正常,没有错误。

但是当我运行Main.py时,它试图调用并导入Media.py,它会引发一个错误,说media.py找不到媒体文件夹中的任何文件,即使它们位于同一个子目录中,以前做得很好。

我尝试使用完整的文件路径和os.path.abspath,但它们也没有用,并引发相同的错误。

这是在main.py中引发错误的区域:

sys.path.insert(0, './lib')
import media

这是我的文件结构:

Game
|
| - Lib
|   |
|   | - Media
|   |       |
|   |       blue.png, along with many other images
|   Media.py
|   |
|   Fetch.py
|   |
|   gamewide.py

1 个答案:

答案 0 :(得分:3)

您的代码取决于起始目录。

要独立于此,您可以使用图像文件与Media.py位于同一目录并且__file__对象的目录名称

的事实

然后:

blue = pygame.image.load(os.path.join(os.path.dirname(__file__), 'Media','blue.png')).convert_alpha()

会做的伎俩