• python基础】——python添加模块搜索路径和包的导入


    方法一:函数添加
    1 import sys
    2 查看sys.path
    3 添加sys.path.append("c:\")

    方法二:修改环境变量
    w用户可以修改系统环境变量PYTHONPATH

    方法三:增加.pth文件,推荐!
    在site-packages添加一个路径文件,如mypkpath.pth,必须以.pth为后缀,写上你要加入的模块文件所在的目录名称就是了。
     1 windows
        c:python27site-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)。

    每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录(文件夹),而不是一个包。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是对应包的名字。调用包就是执行包下的__init__.py文件。

    跨包调用(当前目录下有modulepack1包):

    1 from modulepack1[.modulepack2] import module
    如果当前目录下能够找到要调用的包,可以直接from包import模块,如果当前目录找不到要调用的包,需要向sys.path添加包的所在绝对路径。

    import一个包名,就等于执行了这个包下的__init__文件。

    示例:

    在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判断就不会成功,所以导入的时候不会执行判断内的代码。

    主要用在调试功能,即一个模块被调用的时候不执行内容,而自己调试模块的时候可以顺利的执行模块内容。
    ————————————————
    版权声明:本文为CSDN博主「Teingi」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_40449300/article/details/79327201

  • 相关阅读:
    《Java编程思想》阅读笔记二
    《Java编程思想》阅读笔记一
    【Android开发日记】之入门篇(十五)——ViewPager+自定义无限ViewPager
    将你的代码上传 Bintray 仓库
    Volley框架的流程图分析
    Volley框架的使用
    【Android开发日记】之基础篇(二)——Android的动画效果
    maven项目的多级目录
    【Android开发日记】之基础篇(一)——TextView+SpannableStringBuilder
    Android APP安装后不在桌面显示图标的应用场景举例和实现方法
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/11490966.html
Copyright © 2020-2023  润新知