这个图片加载不出来

这个图片加载不出来

import sys

import pygame

def main():
    #初始化
    pygame.init()

    width,height=480,852

    #屏幕对象
    screen=pygame.display.set_mode((width,height))
    #设置窗口的标题
    pygame.display.set_caption('飞机大战_帅逼余金灿编写')

    #加载背景图片
    bg=pygame.image.load('./assets/images/background.png')

    while True:
        #1.监听事件
        for event in pygame.event.get():
                #退出游戏
                if event.type == pygame.QUIT:
                    pygame.quit()
                    sys.exit()
        #更新游戏的状态
        #回执
        screen.blit(bg,bg.get_rect())
        pygame.display
main()

报错提示:

Traceback (most recent call last):

  File "C:/Users/Think/PycharmProjects/feijidazhan/store/main.py", line 30, in <module>

    main()

  File "C:/Users/Think/PycharmProjects/feijidazhan/store/main.py", line 17, in main

    bg=pygame.image.load('assets/images/background.png')

pygame.error: Couldn't open assets/images/background.png


还有有一个很奇怪的,我一打__双下划线就会变成_ _这样子,不知道咋回事


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

6回答
好帮手慕美 2020-05-22 10:03:45

同学,你好。同学将main.py和constants.py放到了store文件下,因此路径中会多一个store,导致在加载图片时路径不正确。同学将两个文件从store文件中移到feijidazhan文件中即可,

http://img1.sycdn.imooc.com//climg/5ec7320c092ea4cf02160240.jpg

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

提问者 今天也学习python 2020-05-21 21:11:02
  • 提问者 今天也学习python #1
    我注意到老师导入constants都是直接导入,而我这导入是要store。constants,是不是文件没弄对?应该怎么操作呢
    2020-05-21 22:25:14
好帮手慕笑蓉 2020-05-21 14:29:30

同学,你好。确定此目录下是否存在相应图片:C:\Users\Think\PycharmProjects\feijidazhan\store\assets\images/background.png,如果不存在,则需要修改文件结构,如:

http://img1.sycdn.imooc.com//climg/5ec61f80098e615a03990246.jpg

如果解决了你的疑惑,请采纳,祝学习愉快~ 

  • 提问者 今天也学习python #1
    还是不行,目录上没有那个图片,正确路径应该是:C:\Users\Think\PycharmProjects\feijidazhan\assets\images/background.png,可是我是按老师方法拼接的为什么会多出一个store呢?
    2020-05-21 21:10:20
好帮手慕笑蓉 2020-05-21 10:33:24

同学,你好。不能加载图片,可能是图片路径有问题,检查一下ASSETS_DIR = os.path.join(BASE_DIR,'assets')语句附近的代码,是否写全,比如括号是否是成对出现的等。如:

http://img1.sycdn.imooc.com//climg/5ec5e6d209d3c7a507270148.jpg

双下划线是英文状态输出的吗?如果是的,可能是因为字体样式导致同学截图所展示的双下划线,这是没有关系的。

同学先按照老师说的方法进行检查,如果还是加载不出图片,可粘贴相关代码到问答区再次提问,会有老师帮你解决的。

如果解决了你的疑惑,请采纳,祝学习愉快~ 


  • 提问者 今天也学习python #1
    import os #项目的根目录 BASE_DIR = os.path.dirname(os.path.abspath(__file__)) #静态文件的目录 ASSETS_DIR = os.path.join(BASE_DIR,'assets') #背景图片 BG_IMG = os.path.join(ASSETS_DIR,'images/background.png') #背景音乐 BG_MUSIC=os.path.join(ASSETS_DIR,'sounds/game_bg_music.mp3') 我之前漏了一个括号,补上后还是报错: Traceback (most recent call last): File "C:/Users/Think/PycharmProjects/feijidazhan/store/main.py", line 39, in <module> main() File "C:/Users/Think/PycharmProjects/feijidazhan/store/main.py", line 22, in main bg=pygame.image.load(BG_IMG) pygame.error: Couldn't open C:\Users\Think\PycharmProjects\feijidazhan\store\assets\images/background.png
    2020-05-21 12:56:51
提问者 今天也学习python 2020-05-20 22:29:23

http://img1.sycdn.imooc.com//climg/5ec53eb5099b377501420044.jpg

就是打出来是这个样子

提问者 今天也学习python 2020-05-20 22:25:02

用后面老师的方法base dir那个后还是报错:

Traceback (most recent call last):

  File "C:/Users/Think/PycharmProjects/feijidazhan/store/main.py", line 5, in <module>

    from store.constants import BG_IMG

  File "C:\Users\Think\PycharmProjects\feijidazhan\store\constants.py", line 6

    ASSETS_DIR = os.path.join(BASE_DIR,'assets')

    ^

SyntaxError: invalid syntax


  • 提问者 今天也学习python #1
    可能是我的那个base_dir,写错了,所以用后面的方法用不了,就是因为我打不出双下划线,所以basedir的代码打不出来咋办BASE_DIR = os.path.dirname(os.path.abspath(__file__)
    2020-05-20 22:28:16
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师