#跟着教程学# 9、模块和包
模块:就是.py文件,里面定义了一些函数和变量,需要的时候导入这些模块。
1、存一个模块。
#存为名叫moudle.py的文件,它属于python里的模块。 def func_A(): print'A!' def func_B(): print'B!' def func_C(): print'C!'
# Error: SyntaxError: file <maya console> line 1: invalid syntax #
无效语法,检查.py文件语法写的是否错误。第一次写把“()”掉了,就报了上面的错误。
2、调用moudle.py模块方法1。
execfile("C:\Users\Administrator\Desktop\moudle1.py") func_A() A!
# Error: IOError: file <maya console> line 1: 2 #
如果遇到上面的错误,注意检查文件路径是否有误。
3、调用moudle.py模块方法2,导入。
如果直接import moudle1 会出错。# Error: ImportError: file <maya console> line 1: No module named moudle1 #
可以导入sys模块。使用sys模块里面的path命令。把模块的路径添加到path里,然后再调用即可。其实也可以直接把模块文件放置到path找到的路径下,例如D:/Documents/maya/2018/scripts,也是可以调用的。
import sys #把模块所在路径加到path下,然后打印所有路径检查是否加入 sys.path.append("C:/Users/lina/Desktop") for i in sys.path: print i #导入模块然后调用模块中的命令func_A import module1 module1.func_A()
包:在模块之上的概念,为了方便管理而将文件进行打包。包目录下第一个文件是__init__.py,然后是一些模块文件和子目录。假如子目录中也有__inti__.py,那么它就是这个包的子包了。
包里可以放N个模块,但是需要在文件夹中加一个__init__.py文件,这个文件可以是空的,用空文档改后缀即可。这样直接导入文件夹名,就不会报错。一旦包被成功的引用之后,就会在文件夹内生成一个__init__.pyc的文件。
例如,新创建一个文件夹package,里面放三个文件,分别是module1.py,module2.py,__init__.py 。然后调用包里的模块的命令。下面是单独导入命令的两种方法。
import sys #把包所在的路径添加到path下 sys.path.append("C:\Users\lina\Desktop") #方法一 import package.module1 package.module1.func_A() #方法二 from package import module2 module2.func_A()
导入整个包里的所有模块。需要在__init__.py文件中加入__all__ = ['module1','module2']
然后会导入列表中所列的模块。
#导入PKG包里的所有模块。重新载入。 from PKG import *,reload(PKG) #执行模块A里的func_A命令 moduleA.func_A()