标签:链接 应用程序 enter exp pack 环境变量 系统 font family
包的本质就是一个包含__init__.py文件的目录。
包A和包B下有同名模块也不会冲突,如A.a与B.a来自俩个命名空间
通常包总是一个目录,可以使用import导入包,或者from + import来导入包中的部分模块。包目录下为首的一个文件便是 __init__.py。然后是一些模块文件和子目录,假如子目录中也有 __init__.py 那么它就是这个包的子包了。
在创建许许多多模块后,我们可能希望将某些功能相近的文件组织在同一文件夹下,这里就需要运用包的概念了。包对应于文件夹,使用包的方式跟模块也类似,唯一需要注意的是,当文件夹当作包使用时,文件夹需要包含__init__.py文件,主要是为了避免将文件夹名当作普通的字符串。__init__.py的内容可以为空,一般用来进行包的某些初始化工作或者设置__all__值,__all__是在from package-name import *这语句使用的,全部导出定义过的模块。
引入某一特定路径下的模块
sys.path.append(yourmodulepath)
将一个路径加入到python系统路径下,避免每次通过代码指定路径
export PYTHONPATH=$PYTHONPATH:yourmodulepath
,/Library/Python/2.7/site-packages
目录下好的建议
if __name__ == ‘__main__‘
,保证你写包既可以import又可以独立运行,用于test。reload
来强制运行模块,但不提倡。为了组织好模块,将多个模块分为一个包。包是python模块文件所在的目录,且该目录下必须存在__init__.py
文件。常见的包结构如下:
package_a
├── __init__.py
├── module_a1.py
└── module_a2.py
package_b
├── __init__.py
├── module_b1.py
└── module_b2.py
main.py
main.py
想要引用packagea
中的模块module
a1
,可以使用:from package_a import module_a1
import package_a.module_a1
packagea
中的module
a1
需要引用packageb
,那么默认情况下,python是找不到package
b
。我们可以使用sys.path.append(‘../‘)
,可以在packagea
中的__init__.py
添加这句话,然后该包下得所有module都添加* import __init
_
即可。
标签:链接 应用程序 enter exp pack 环境变量 系统 font family
原文地址:http://www.cnblogs.com/guobaoyuan/p/6798184.html