我无法导入带有目录的照片

问题描述 投票:1回答:2

每当我输入时,我的代码都会收到此错误:

Traceback (most recent call last):
  File "C:\Users\chris\Desktop\Passion Project Files\Passion-Project.py", line 16, in <module>
    self.image = pygame.image.load("C:Users\chris\Desktop\Passion Project Files\Resources\bg.jpg").convert()
pygame.error: Couldn't open C:Users\chris\Desktop\Passion Project Files\Resources\bg.jpg

这是我的代码:

   import random
import os
import pygame
from pygame.locals import *

pygame.init()

width, height = 640, 480
screen = pygame.display.set_mode((width, height))

pygame.display.set_caption("PP Example")

done = False
clock = pygame.time.Clock()

game_folder = os.path.dirname(__file__)
image_folder = os.path.join(game_folder, "Images")
background_image = pygame.image.load("bg.jpg").convert()

while not done:
  for event in pygame.event.get():
    if event.type==pygame.QUIT:
      done = True
  screen.blit(background_image, [0, 0])

  pygame.display.flip()

  clock.tick(60)

pygame.quit()

更新的代码仍无效

我见过其他人使用过相同的方法,但我不知道我是否改变了一些东西而且没有看到它或者它是否只是不起作用,因为我发现的大多数人似乎都很老了他们被发布并解决了,但我认为他们不是那么老,解决方案已经改变了

python python-3.x import pygame photo
2个回答
1
投票

请使用r-string进行回击。

你不会对"chris\new project\test\bg.jpg"的结果感到满意,因为换行和TAB将带来令人不快的惊喜。

r"C:Users\chris\Desktop\Passion Project Files\Resources\bg.jpg"

另外,除非os.getcwd()报告你在根目录,否则你应该从一个初始斜杠开始:

r"C:\Users\chris\Desktop\Passion Project Files\Resources\bg.jpg"

0
投票

不确定为什么它不起作用但试试这个。

将图像放在项目文件夹中的文件夹中。

让os库为您完成工作。它将确保大多数计算机都可以访问文件路径。

game_folder = os.path.dirname(__file__)
image_folder = os.path.join(game_folder, "theNameOfYourImageFolder")

然后你必须定义和实例化你使用self的任何东西。比如,如果它是一个精灵,例如......

class Whatever(pygame.sprite.Sprite)
    def __init__(self):
        self.image = pygame.image.load(os.path.join(image_folder,"justTheFileName.jpg"))
.convert()

上面应该在pygame.init()之前发生。比起init之后的某个地方。

Whatever = Whatever()

希望有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.