ImportError:cannot import name game
来源:互联网 发布:js下载 编辑:程序博客网 时间:2024/05/22 17:42
在学习《Learn Python the hard way》这本书的习题ex47的时候遇到这个问题,如图:
from ex47 import game
从包ex47中无法导入game.py文件,原因是ex47中缺少__init__.py文件,那它只是一个目录,不是一个包,所以导入失败。
下面是关于这个问题的整理:
创建一个名字为包名字的文件夹并在该文件夹下创建一个__init__.py 文件就定义了一个包。可以根据需要在该文件夹下存放资源文件、已编译扩展及子包。
包是一个带有特殊文件 __init__.py 的目录。__init__.py 文件定义了包的属性和方法,其实它可以什么也不定义;可以只是一个空文件,但是必须存在。如果 __init__.py 不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入或者包含其它的模块和嵌套包。只要一个文件夹下面有个 __init__.py 文件,那么这个文件夹就可以看做是一个包,假如子目录中也有 __init__.py 那么它就是这个包的子包了。当你将一个包作为模块导入的时候,实际上导入了它的 __init__.py 文件。
Graphics/
__init__.py
Primitive/
__init__.py
lines.py
fill.py
text.py
import语句使用以下几种方式导入包中的模块:
- import Graphics.Primitive.fill 导入模块Graphics.Primitive.fill,只能以全名访问模块属性,例如Graphics.Primitive.fill.floodfill(img,x,y,color)
- from Graphics.Primitive import fill 导入模块fill ,只能以 fill.属性名这种方式访问模块属性,例如 fill.floodfill(img,x,y,color)
- from Graphics.Primitive.fill import floodfill 导入模块fill ,并将函数floodfill放入当前名称空间,直接访问被导入的属性,例如 floodfill(img,x,y,color)
1 0
- ImportError:cannot import name game
- ImportError: cannot import name Pseudo
- Python ImportError: cannot import name *
- ImportError: cannot import name IncompleteRead
- ImportError: cannot import name HTTPSHandler
- importError: cannot import name 'izip_longest'
- ImportError: cannot import name mkdtemp
- ImportError: cannot import name HTTPSHandler
- ImportError: cannot import name Process
- ImportError: cannot import name 'NUMPY_MKL'
- ImportError: cannot import name webdriver
- ImportError: cannot import name ContextualZipFile
- ImportError: cannot import name NUMPY_MKL
- ImportError: cannot import name 'Process'
- ImportError: cannot import name downsample
- ImportError: cannot import name IncompleteRead
- ImportError: cannot import name __check_build
- ImportError: cannot import name activity_l2
- Ruby 迭代器
- javascript里的sleep()方法
- UIView的UIViewAutoresizingMark
- Excel文件导入导出实战(4)--上传下载
- 社交网络的好友推荐
- ImportError:cannot import name game
- centos中安装并使用svn
- AFNetworking 对数据进行https ssl加密
- Android Develop:减小APK大小
- 获取Echarts的DataZoom的起始值
- Spring源码分析【6】-ThreadLocal的使用和源码分析
- JavaScript里的循环方法:forEach,for-in,for-of
- ES常用插件
- 1264 线段相交(几何计算)