pygame安装问题(1) 'module' object has no attribute 'init'

本文介绍了一种pygame包使用中出现的init()函数未找到的错误及其解决方案。该问题源于错误的导入路径指向了一个非pygame模块的.pyc文件。通过更正文件名解决了这一问题。

近期打算利用pygame库写一个小游戏,在下载pygame后用脚本运行pygame.init()语句时报错:

[python]   view plain  copy
  1. Traceback (most recent call last):  
  2.   File "C:/Users/mnb/Desktop/22.py", line 1in <module>  
  3.     import pygame  
  4.   File "C:\Users\mnb\Desktop\pygame.py", line 4in <module>  
  5. AttributeError: 'module' object has no attribute 'init'  

翻译下错误原因就是导入的pygame包中没有定义init()函数。


然而我从安装目录下发现的确存在__init__函数,而且在Sheel(IDLE编辑器)中直接运行pygame.init()并没有报错:

[python]   view plain  copy
  1. >>> import pygame  
  2. >>> pygame.init()  
  3. (60
那么就可以推测从脚本导入包的路径和Sheel的是不同的,在Sheel下运行pygame找到正确路径应为:

  1. >>> pygame  
  2. <module 'pygame' from 'C:\Python27\lib\site-packages\pygame\__init__.pyc'>  
显然与错误路径"C:\Users\mnb\Desktop\pygame.py"不同,那么根据错误路径(我的在桌面)可以发现有一个.pyc文件:


pyc文件,是python编译后的字节码(bytecode)文件。只要你运行了py文件,python编译器就会自动生成一个对应的pyc字节码文件。这个pyc字节码文件,经过python解释器,会生成机器码运行。所以把这个.pyc文件名改掉就能正常导入包了。

[python]   view plain  copy
  1. >>> import pygame  
  2. >>> pygame.init()  
  3. (60
[python]   view plain  copy
  1. >>> import pygame  
  2. >>> pygame.init()  
  3. (60
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值