Python在遍历已知的库文件目录过程中,如果见到一个._pth 文件,就会将文件中所记录的路径加入到 sys.path 设置中,于是 .pth 文件说指明的库也就可以被 Python 运行环境找到了。
python中有一个.pth文件,该文件的用法是:

首先xxx._pth文件里面会书写一些路径,一行一个
将xxx._pth文件放在特定位置,则可以让python在加载模块时,读取xxx._pth中指定的路径。

在python中,一个扩展名.py的文件就是一个模块

1. 使用import语句导入模块

import modulename 导入文件名为modulename.py的所有模块

import modulename [as alias] 设置别名

备注:使用import导入模块后,每执行一条import语句会创建一个新的命名空间,在该命名空间中执行与.py文件相关的所有语句。在执行时,需要在具体的变量、函数和类名前加上”模块名.”。

2. 使用from....import语句导入模块

from modelname import member: 导入某个变量、函数或者类等。

from modelname import *:导入全部定义

3. 模块搜索顺序

当import 导入模块之后,会按照以下顺序进行查找:

1)当前目录下查找

2)在PYTHONPATH下的每个目录中查找

3)到python默认安装目录下查找

上面的目录可以通过sys的sys.path查看

import sysprint(sys.path)

输出结果:

['E:PyProjectChapter13', 'E:PyProject', 'D:python3python38.zip', 'D:python3DLLs', 'D:python3lib', 'D:python3', 'E:PyProjectvenv', 'E:PyProjectvenvlibsite-packages', 'E:PyProjectvenvlibsite-packagessetuptools-40.8.0-py3.8.egg', 'E:PyProjectvenvlibsite-packagespip-19.0.3-py3.8.egg']

可通过以下3种方式将指定的目录加到path中

a. 临时加入

import syssys.path.append('E:/')print(sys.path)

输出结果

['E:PyProjectChapter13', 'E:PyProject', 'D:python3python38.zip', 'D:python3DLLs', 'D:python3lib', 'D:python3', 'E:PyProjectvenv', 'E:PyProjectvenvlibsite-packages', 'E:PyProjectvenvlibsite-packagessetuptools-40.8.0-py3.8.egg', 'E:PyProjectvenvlibsite-packagespip-19.0.3-py3.8.egg', 'E:/']

备注:只在当前文件的窗口中有效,窗口关闭后即失效。

b. 增加.pth文件

在python安装目录下的Libsite-packages中(我的在D:\python3\Libsite-packages),创建扩展名为.pth的文件,文件名自定,在该文件中添加要导入的目录

备注:此种方法,需要重新打开要执行的导入模块的python文件,否则不生效。只在当前版本中有效。

c. 在PYTHONPATH环境变量中添加

打开windows的“环境变量”对话框,若没有PYTHONPATH则需要添加,否则双击PYTHONPATH变量,在弹出对话框的变量值文本中添加新的模块目录,目录之前使用逗号分隔。

备注:此种方法,需要重新打开要执行的导入模块的python文件,否则不生效。只在当前版本中有效。

4. 以主程序的形式执行

christmastree.py文件内容为:

pinetree = '我是一颗松树'
def fun_christmastree(): ''' 功能:一个梦 无返回值 ''' pinetree = '挂上彩灯、礼物.....我变成一颗圣诞树'print(pinetree)

main.py文件内容为:

import christmastreeprint('全局变量的值为: ', christmastree.pinetree)

第一次使用灰色框中的内容:

输出结果为:

下雪了.....=================开始做梦......==============挂上彩灯、礼物.....我变成一颗圣诞树=================梦醒了......==============我身上落满雪花. 我是一颗松树-_-

第二次使用红色框中的代码:

输出结果:

全局变量的值为: 我是一颗松树

说明:

通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明');在你自己眼中,你是你自己(__name__ == '__main__')。python为动态解释型语言,也就是从脚本第一行开始运行,没有统一的入口。

每一个模块(.py)都有一个__name__,当模块被直接执行时,此时__name__ '__main__';而被其他模块导入时,此时__name__为被导入的模块名称,程序执行被导入模块的所有代码。但更多时候只是希望执行部分代码,此时如红框处表示,可以加上if __name__ == '__main__',作为文件的入口。

Python中._pth文件的作用相关推荐

  1. python中csv文件操作_python中操作csv文件

    python中操作csv文件 读取csv improt csv f = csv.reader(open("文件路径","r")) for i in f: pri ...

  2. 浅析python 中__name__ = '__main__' 的作用

    很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = ...

  3. python 中__name__ = '__main__' 的作用

    学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = '__main ...

  4. python中二进制文件_Python学习基础篇 -6: Python中的文件操作

    前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 . 文件有有什么用 文件可以看作一个仓库 ...

  5. python中文件操作中不同的文件操作有何差异_Python学习基础篇 -6: Python中的文件操作...

    前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 .文件有有什么用 文件可以看作一个仓库, ...

  6. python中main的作用_浅析python 中__name__ = '__main__' 的作用

    很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = ...

  7. Python中的文件操作和异常

    Python中的文件操作和异常 文章目录 Python中的文件操作和异常 一.文件 01. 文件的概念 1.1 文件的概念和作用 1.2 文件的存储方式 文本文件和二进制文件 02. 文件的基本操作 ...

  8. python 如何判断一个函数执行完成_三步搞定 Python 中的文件操作

    当程序运行时,变量是保存数据的好方法,但变量.序列以及对象中存储的数据是暂时的,程序结束后就会丢失,如果希望程序结束后数据仍然保持,就需要将数据保存到文件中. Python 提供了内置的文件对象,以及 ...

  9. python移动文件中某个内容_如何在Python中移动文件

    如何在Python中移动文件 我查看了Python $ mv ...接口,但无法找到移动文件的方法. 我如何在Python中执行相当于$ mv ...的操作? >>> source_ ...

  10. Python中的文件及目录操作

    Python中的文件及目录操作 在变量.序列和对象中存储的数据是暂时的,程序结束后就会丢失.为了能够长时间地保存程序中的数据,需要将程序中的数据保存到磁盘文件中.Python提供了内置的文件对象和对文 ...

最新文章

  1. 短途人生- 让自己慢下来(39)
  2. 胆固醇竟是新冠最隐蔽同伙!协助病毒入侵细胞,普林斯顿、哈佛医学院首次观察到全过程...
  3. .net ajax式上传文件
  4. 五十九、Vue中的样式绑定
  5. 两个有序链表序列的交集 (20分)(最佳解法)
  6. PAT_B_1003_Java(20分)
  7. springboot项目 tomcat8.x 频繁宕机 原因分析
  8. Kafka三款监控工具比较
  9. 排序算法(一)--插入排序法折半插入排序法
  10. Google 是如何做 Code Review 的?| 原力计划
  11. python多进程编程实例_[python] Python多进程编程技术实例分析
  12. android连mysql注册界面代码_Android实现注册登录界面的实例代码
  13. 弹幕,是怎样练成的?
  14. 【图像处理】canny和sobel边缘检测__python-opencv
  15. vuex状态持久化_Vuex数据状态持久化-vuex-persistedstate
  16. c++ 多线程 类成员函数_C++11多线程
  17. dockerfile中的env指令_Dockerfile中的ENV指令的具体使用详解
  18. Qt加载gif动态图
  19. 计算机 英语简历,2017计算机英文简历范文
  20. 短轮询和长轮询的区别到底是什么

热门文章

  1. Mendeley-一款免费好用的文献管理软件
  2. 面试经验|华为二面分享 真难ε=(´ο`*)))唉
  3. speedoffice表格如何冻结窗格?
  4. html旋转360度特效,CSS3图片旋转特效(360/60/-360度)
  5. 净利同比下滑14.5%,康师傅的“水”和“面”还好卖吗?
  6. pytorch使用DCN
  7. JSLint中常见报错提示
  8. 学而思css动画使用
  9. CDH5 安装需求和相关软件支持的版本信息
  10. excel转word_excel怎么转换成word格式手机?骨灰级方法确定不收藏吗?