python小菜鸟求助(import出错问题)

daisylong 2017-07-10 11:13:30
我是一枚刚学习python的小菜鸟,在学习一个类中导入另一个类时,一直提示错误,检查了下代码跟书上的是一样的,百度了下相关问题说是项目目录下有.pyc的原因,但我的项目下没有.pyc文件啊,就这个看似简单的问题阻碍了我的学习之路,请各位大神们看看,我把问题跟源代码都发出来


1、报错点:from settings import Settings
报错:报错"AttributeError: 'module' object has no attribute 'xxx'"。settings跟Settins下面一直红色下划线,程序编译不过
2、目录结构
--test(folder)
---alien_project(folder)
------alien_invation.py
------settings.py

settings.py代码
#!/bin/usr/bin
#coding=utf-8

class Settings():
"""存储《外星人入侵》的所有设置的类"""

def __init__(self):
#屏幕设置
self.screen_width = 1200
self.screen_height = 800
self.bg_color = (230, 230, 230)

alien_invation.py 代码
#!/bin/usr/bin
#coding=utf-8

import sys
import pygame
from settings import Settings #import 出错,未解

def run_game():
"""初始化游戏并创建一个屏幕对象"""
pygame.init()
ai_settings = Settings()
screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height))
pygame.display.set_caption("Alien Invation")
#bg_color = (230, 230, 230)

#开始游戏的主循环
while True:
#监视键盘和鼠标事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()

#每次循环时都重绘屏幕
screen.fill(ai_settings.bg_color)

#让最近绘制的屏幕可见
pygame.display.flip()

run_game()
...全文
851 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
哎 竟然是双下划线
finder_zhang 2017-07-13
  • 打赏
  • 举报
回复
引用 9 楼 daisylong 的回复:
[quote=引用 8 楼 finder_zhang 的回复:] 楼主,我复制你的代码,在 pycharm 里面,完全没有报错,直接出游戏窗口了。有需要可以留个QQ交换大家交换代码试试。
我后面用Pycharm也能出窗体了,但是错误一直显示在,很无奈啊[/quote] 你都已经出窗体了,有没有重启 pycharm 试试啊?
finder_zhang 2017-07-13
  • 打赏
  • 举报
回复
引用 10 楼 DreamingSaltedFish 的回复:
导入模块出错的原因就是当前文件夹也有个settings.py文件,但当前文件夹这个settings.py文件没有Settings的功能。 导入模块有个搜索顺序的,第一个搜索顺序就是当前文件夹。import sys,然后sys.path就可以看出来搜索模块的顺序
10楼应该是以为你的这个 Settings 类与 settings 文件是系统原有的,被你自己写的覆盖了,但其实这个不是系统本身的,就是我们自己写的。不过这个导入模块顺序让我们这些新来的学习了。
daisylong 2017-07-12
  • 打赏
  • 举报
回复
引用 8 楼 finder_zhang 的回复:
楼主,我复制你的代码,在 pycharm 里面,完全没有报错,直接出游戏窗口了。有需要可以留个QQ交换大家交换代码试试。
我后面用Pycharm也能出窗体了,但是错误一直显示在,很无奈啊
daisylong 2017-07-12
  • 打赏
  • 举报
回复
我的settings.py里是有Settings这个类的,我前面有po settings.py的代码 我试下你说的说的顺序
DreamingSaltedFish 2017-07-12
  • 打赏
  • 举报
回复
导入模块出错的原因就是当前文件夹也有个settings.py文件,但当前文件夹这个settings.py文件没有Settings的功能。
导入模块有个搜索顺序的,第一个搜索顺序就是当前文件夹。import sys,然后sys.path就可以看出来搜索模块的顺序
finder_zhang 2017-07-11
  • 打赏
  • 举报
回复
楼主,我也跟你一样,初学,也在看这本python书,我用的 sublime 暂时没事,我挺好奇你的这个错误,我也用 pycharm 试试看会怎样。
finder_zhang 2017-07-11
  • 打赏
  • 举报
回复
楼主,我复制你的代码,在 pycharm 里面,完全没有报错,直接出游戏窗口了。有需要可以留个QQ交换大家交换代码试试。
daisylong 2017-07-10
  • 打赏
  • 举报
回复
补充下我用的是Python3.6,pycharm编程软件
daisylong 2017-07-10
  • 打赏
  • 举报
回复
还有没有大神知道是什么原因啊
daisylong 2017-07-10
  • 打赏
  • 举报
回复
对哦,我试了下cmd里也是可以的,但在这个软件里怎么就是不行呢
sanGuo_uu 2017-07-10
  • 打赏
  • 举报
回复
引用 3 楼 daisylong 的回复:
我debug的 没有debug前软件一直提示import那行有错误啊
不会完pycharm。它有没有设置启动页什么的? 我是在cmd里直接调用alien_invation.py,然后就执行了
daisylong 2017-07-10
  • 打赏
  • 举报
回复
我debug的 没有debug前软件一直提示import那行有错误啊
sanGuo_uu 2017-07-10
  • 打赏
  • 举报
回复
我试了下,没毛病,能出窗体。 你是怎么调用alien_invation.py的?

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧