【python基础】——python添加模块搜索路径和包的导入 缺乏、安全感 2022-05-31 08:47 304阅读 0赞 方法一:函数添加 1 import sys 2 查看sys.path 3 添加sys.path.append("c:\\\\") 方法二:修改环境变量 w用户可以修改系统环境变量PYTHONPATH 方法三:增加.pth文件,推荐! 在site-packages添加一个路径文件,如mypkpath.pth,必须以.pth为后缀,写上你要加入的模块文件所在的目录名称就是了。 1 windows c:\\python27\\site-packages \# 我们的学员把pth文件直接放在c:\\python27 \# (或其他python安装目录)目录下测试也是有效的 \# 2015.9.23 2 linux(ubuntu) /usr/local/lib/python2.7/dist-packages (note by shanql, 我是放在这个目录下有效的,所添加的目录一定要存在,不存在则会不成功) 2 linux(redhat) /usr/lib/python2.7/site-packages **包的调用** 为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。 ![1168144-20170628161248586-632368241.png][] 每一个包目录下面都会有一个`__init__.py`的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录(文件夹),而不是一个包。`__init__.py`可以是空文件,也可以有Python代码,因为`__init__.py`本身就是一个模块,而它的模块名就是对应包的名字。调用包就是执行包下的\_\_init\_\_.py文件。 跨包调用(当前目录下有modulepack1包): 1 from modulepack1[.modulepack2] import module 如果当前目录下能够找到要调用的包,可以直接from包import模块,如果当前目录找不到要调用的包,需要向sys.path添加包的所在绝对路径。 import一个包名,就等于执行了这个包下的\_\_init\_\_文件。 示例: ![1168144-20170628162624243-370438535.png][] 在nod1里import hello是找不到的,需要手动添加包路径,如果找到那是因为pycharm给加了不必要的路径,以命令行执行为准。 1 import sys,os 2 BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #__file__获取执行文件相对路径,整行为取上一级的上一级目录 3 sys.path.append(BASE_DIR) #添加路径 4 import hello 5 hello.hello1() **模块调用测试** 1 if __name__=='__main__': #__name__方法判断 2 print('ok') 在一个py模块直接执行print(\_\_name\_\_)会输出\_\_main\_\_,表示当前这个文件属于执行文件,如果从其他的py模块中导入一个py模块,执行被导入的py模块中的print(\_\_name\_\_)会输出被导入的模块的模块名称,那么if判断就不会成功,所以导入的时候不会执行判断内的代码。 主要用在调试功能,即一个模块被调用的时候不执行内容,而自己调试模块的时候可以顺利的执行模块内容。 [1168144-20170628161248586-632368241.png]: /images/20220531/74f8bb009296451ca363057db75c508b.png [1168144-20170628162624243-370438535.png]: /images/20220531/2682748150ce4267af9e3c0a514a8004.png
还没有评论,来说两句吧...