我是放在这个目录下有效的所添加的目录一定要存在,不存在则会不成功)2 linux(redhat)
为了避免模块名冲突Python又引入了按目录来组织模块的方法,称为包(Package)
每一个包目录下面嘟会有一个__init__.py
的文件,这个文件是必须存在的否则,Python就把这个目录当成普通目录(文件夹)而不是一个包。__init__.py
可以是空文件也可以有Python代码,洇为__init__.py
本身就是一个模块而它的模块名就是对应包的名字。调用包就是执行包下的__init__.py文件
跨包调用(当前目录下有modulepack1包):
如果当前目录下能够找到要调用的包,可以直接from包import模块如果当前目录找不到要调用的包,需要向sys.path添加包的所在绝对路径
import一个包名,就等于执行了这个包下的__init__文件
在nod1里import hello是找不到的,需要手动添加包路径如果找到那是因为pycharm给加了不必要的路径,以命令行执行为准
在一个py模块直接执行print(__name__)會输出__main__,表示当前这个文件属于执行文件如果从其他的py模块中导入一个py模块,执行被导入的py模块中的print(__name__)会输出被导入的模块的模块名称那么if判断就不会成功,所以导入的时候不会执行判断内的代码
主要用在调试功能,即一个模块被调用的时候不执行内容而自己调试模塊的时候可以顺利的执行模块内容。