为什么pygame打不开文件?

2020-03-20 14:34发布

到底怎么肥事啊,如果把它转成exe,居然没事(照常运行)!这是我几个月以前的代码,当时我是在笔记本上弄的,我笔记本是3.7.6,我现在到台式弄,也是3.7.6,然后我文件和文件夹都在同一个目录(图3注...

到底怎么肥事啊,如果把它转成exe,居然没事(照常运行)!这是我几个月以前的代码,当时我是在笔记本上弄的,我笔记本是3.7.6,我现在到台式弄,也是3.7.6,然后我文件和文件夹都在同一个目录(图3注意黄色圈起来的),跪求帮忙

3条回答
Anonyem
2楼 · 2020-09-08 09:56






首先,我开始也是打不开的,因为我是先用的Pycham转过来使用的,然后使用了VS也使用以下的代码,注意是pygame.image.load()这段程序

'''

@Description:InUserSettingsEdit

@Author:yourname

@Date:2019-09-2910:10:10

@LastEditTime:2019-09-2913:19:14

@LastEditors:PleasesetLastEditors

'''


importpygame,sys

frompygame.localsimport*


fps=30

size=width,hight=1000,600

img='cat_girl.png'

title='FirstBox'


#color

white=(255,255,255)

black=(0,0,0)

red=(255,0,0)

pygame.init()

pygame.display.set_caption(title)

screen=pygame.display.set_mode(size)

image=pygame.image.load(img)


running=True

whilerunning:

foreventinpygame.event.get():

ifevent.type==pygame.QUIT:

sys.exit()


screen.fill(white)

screen.blit(image,(0,0))

pygame.display.flip()


#pygame.display.update()


这是我的报错信息:

pygame.error:Couldn’topencat_girl.png

VS软件内的实际路径显示


PSD:\ProgramFiles\PythonCode>python-u"d:\ProgramFiles\PythonCode\pygame\firstWindows.py"

pygame1.9.6

Hellofromthepygamecommunity.https://www.pygame.org/contribute.html

Traceback(mostrecentcalllast):

File"d:\ProgramFiles\PythonCode\pygame\firstWindows.py",line

24,in

image=pygame.image.load(img)

pygame.error:Couldn'topencat_girl.png

PSD:\ProgramFiles\PythonCode>


通过百度下,在这里受到了启发

然后我就找到了这个图片的路径,把定义图片的路径给加上去了



把img后面的路径改为:

img='D:\ProgramFiles\PythonCode\pygame\cat_girl.png'


这样的话,就可以打开了,如下图


再有,如下也都是可以的

个人觉得,写Python程序之前,先创建一个大体的文件目录出来,然后再用相对路径更好,打包时,不用担心,找不到文件而报错

强烈建议使用’相对路径’

img='pygame\cat_girl.png'


或者

img='pygame/cat_girl.png'


但是我试了

img='./cat_girl.png'

img='.\cat_girl.png'


以上两种写法都是不可以的,窗口加载后会闪退


#字体路径

Arvo='pygame\My_plane\Fonts\ARVO-REGULAR.TTF'

Consolas='pygame\My_plane\Fonts\CONSOLAZ.TTF'

DejaVv='pygame\My_plane\Fonts\DEJAVUSANSMONO-OBLIQUE_0.TTF'

HK='pygame\My_plane\Fonts\华康少女体W5(P).ttf'




007
3楼 · 2020-09-17 09:45





最近自学python在编写书中一个案例时碰到了如下错误:pygame.error:Couldn’topenimages\ship.bmp

代码如下:

importpygame


classShip():

def__init__(self,screen):

self.screen=screen


self.image=pygame.image.load(r'images\ship.bmp')

self.rect=self.image.get_rect()

self.screen_rect=screen.get_rect()


self.rect.centerx=self.screen_rect.centerx

self.rect.bottom=self.screen_rect.bottom


defblitme(self):

self.screen.blit(self.image,self.rect)


这里首先要注意的时python在windows路径下要用"\"

在vscode中这个地方用相对路径点击右上角的在终端运行时就会碰到文章开始说的错误

解决办法有两个方法一:采用绝对路:(r"F:\pythonStudy\alien_invasion\images\ship.bmp")

方法二:用相对路径,在设置中找到如下图所示位置勾选即可


灰机带翅膀
4楼 · 2021-08-26 14:16

方法一:采用绝对路:(r"F:\pythonStudy\alien_invasion\images\ship.bmp")

方法二:用相对路径,在设置中找到如下图所示位置 勾选即可

image.png

相关问题推荐

  • 回答 5

    python中单行注释采用 #开头示例:#this is a comment二、批量、多行注释符号多行注释是用三引号,例如:输入''' '''或者 ,将要注释的代码插在中间三、Windows下的IDLE的注释快捷键是Alt+3,取消注释是Alt+4四、python中文注释方法...

  • 回答 3

    apply

  • 回答 3

    标准库Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。Python标准库的主要功能有:1.文本处理,包...

  • 回答 6

    Python Lambda函数是没有任何名称的函数。它们也称为匿名或无名功能。 lambda一词不是名称,而是关键字。此关键字指定后面的函数是匿名的。现在您已经知道这些匿名函数指的是什么,让我们进一步了解一下如何编写这些Python Lambda函数。...

  • 回答 18

    Linux操作系统是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,...

  • 回答 4

    深度学习工程师就业路径目前,成为深度学习工程师有两条路径:一是通过春秋两季的校园招聘,另一种是借助社会招聘跨行业转型。前述文章曾经将深度学习工程师分为算法工程师、后端工程师和前端工程师。综合目前市面上各大公司招聘和咨询报告结果,目前工作3-5...

  • 回答 19

    零基础学编程,用python入门是个不错的选择,虽然国内基本上还是以c语言作为入门开发语言,但在国外,已经有很多的学校使用python作为入门编程语言。此外,python在机器学习,人工智能领域也非常流行,算得上是算法工程师的标配编程语言。...

  • 回答 10

    包是一个有层次的文件目录结构,它定义了由n个模块或n个子包组成的python应用程序执行环境。通俗一点:包是一个包含__init__.py 文件的目录,该目录下一定得有这个__init__.py文件和其它模块或子包。python库是参考其它编程语言的说法,就是指python中的完成...

  • 回答 5

    1、len(mapping)        返回映射的长度(键-值对的个数)2、hash(obj)              返回obj的哈希值>>> myDict = {'name':'earth', 'port':'80'} >>> len(myDict) 2 >>> hash('name') 1...

  • 回答 7

    常用内建属性说明触发方式__init__构造初始化函数创建实例后,赋值时使用,在__new__后__new__生成实例所需属性创建实例时__class__实例所在的类实例.__class____str__实例字符串表示(可读性)print(类实例),如没实现则使用repr结果__repr__实例字符串表示...

  • 回答 4

    ‘‘‘关键字:False:bool数据类型True:bool数据类型None:表示数据的内容为空and:逻辑运算符:与or:逻辑运算符:或not:逻辑运算符:非in:身份运算符,判断变量是否在序列中is :成员运算符,判断变量是否为某个类的实例del:删除变量或序列的值assert:列...

  • 回答 8

    函数注释语法函数注释包括:参数注释:以冒号(:)标记返回值注释:以 -> 标记语法结构大体如下:1、def foo(a: expression, b: expression = 5) -> expression:2、 ...在伪语法中,参数看起来像:identifier [: expression] [= expression]。也就是说,参数...

  • 回答 6

    OpenDoor变量的命名: year_month_day = 2020-7-24 这样写以后都会写很多单词,比较麻烦,可以用ymd代替,然后在第一行或者句尾添加注释说明 a, b, c =1,2, 3 这样的赋值在python中也是可以用的

  • 回答 5

    Python 使用井号#作为单行注释的符号,语法格式为:# 注释内容从井号#开始,直到这行结束为止的所有内容都是注释。Python 解释器遇到#时,会忽略它后面的整行内容。说明多行代码的功能时一般将注释放在代码的上一行多行注释指的是一次性注释程序中多行的内容...

  • 回答 6

    在IDLE中,常用 Alt + 3 给当前行进行注释                           Alt + 4 取消当前行的注释在Pycharm中,常用 Ctrl + / 将所选部分快速注释,再按一次 Ctrl + / 可以将所选部分注释取消...

没有解决我的问题,去提问