【问题标题】:Pygame not finding image folder when in subdirectoryPygame在子目录中找不到图像文件夹
【发布时间】:2019-03-30 00:27:53
【问题描述】:

我一直在重构我的游戏,以便将一些文件放在一个名为 /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

【问题讨论】:

    标签: python pygame


    【解决方案1】:

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

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

    然后:

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

    会成功的

    【讨论】:

      猜你喜欢
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      • 2012-11-12
      相关资源
      最近更新 更多