我一直在重构我的游戏,以便将一些文件放在名为/ 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
答案 0 :(得分:3)
您的代码取决于起始目录。
要独立于此,您可以使用图像文件与Media.py
位于同一目录并且__file__
对象的目录名称
然后:
blue = pygame.image.load(os.path.join(os.path.dirname(__file__), 'Media','blue.png')).convert_alpha()
会做的伎俩