python中每一个 .py文件即为一个模块,当我们想使用第三方模块时,首先则是使用import将模块导入进来,但是import会在哪些路径里寻找模块呢,接下来总结一下:
简单的说我们可以使用一下代码查看模块所在路径:

import sys
print(sys.path)

返回的结果是一个列表,该列表中列出了寻找模块时的路径,列表中的内容基本上来自以下几个来源:

  • 当前文件夹路径
  • PYTHONPATH环境变量所对应文件路径
  • Python安装的标准链接库等文件夹路径
  • PTH文件列出的文件夹路径

所以,当我们编写好一个.py文件之后,如果我们想在另一个.py文件中import该模块(即.py文件),对应有四种方法可以实现让python解释器找到该模块。

  1. 将该模块放在当前路径
  2. 设置PYTHONPATH环境变量为模块所在路径
  3. 将模块放在标准链接库等文件夹路径中
  4. 在PTH文件中增加该模块所在路径即可

前面3点都很好理解,关于最后一点,以下详细说明:

PTH文件的存放位置在不同的操作系统中有所差异,但是通过site这个内置模块的getsitepackages()函数可以获取正确的位置。如我的电脑显示如下:

可以看见返回了两条路径,我在其中一个路径下面新建workspace.pth文件,然后编写该文件,一行一个路径如:

C:\ProgramData
D:\tmp

以后便是我在该.pth文件里所对应的路径下面编写的模块,在另外的模块中使用import导入时便不会出错了。你可以使用sys.path输出,也会看见C:\ProgramData,D:\tmp这两条路径。


另外:
1. 在Windows中用SET PYTHONPATH = 路径1;路径2的方式来设置PATHONPATH环境变量。
2. 也可以使用如下代码设置:sys.path.append('c:\workspace')
3. 模块查找的顺序为:内存中已经加载的模块–>内置模块–>sys.path路径中包含的模块


当一个模块被import时,会发生以下事情:
1. 在sys.path寻找模块
2. 加载、编译模块的程序代码
3. 创建空的模块对象
4. 在sys.modules中记录该模块
5. 执行模块中的程序代码及相关定义

哈哈,写得比较乱,当然我自己可以看懂,目的也是方便自己以后查阅,要是哪位网友逛到这儿来了,你就将就方便看吧,哈哈。。

python的模块查找路径相关推荐

  1. python找图是什么模块-python中模块查找的原理与方法详解

    前言 本文主要给大家介绍了关于python模块查找的原理与方式,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍: 基础概念 module 模块, 一个 py 文件或以其他文件形式存在的可被 ...

  2. python第三方模块安装路径_Python第三方Window模块文件的几种安装方法

    python安装第三方模块 使用软件管理工具pip python自带了包管理工具,就像手机app商城,91助手等软件的功能一样. python2与python3安装模块的方法相似,值得注意的是,你在p ...

  3. Python模块查找路径

    Python通过import来加载模块.加载前首先按照如下顺序查找模块文件: 1.需要加载模块的Python文件所在目录. 例如: A.py在/opt/test目录下,A.py需要加载B.py,则运行 ...

  4. python psutil模块查找进程_python模块 - psutil

    一.psutil模块: 1. psutil模块简介 他是一个跨平台库 ( http://pythonhosted.org/psutil/ ) 能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内 ...

  5. python添加模块搜索路径

    1.函数添加 import sys sys.path sys.path.append("c:\\") 2.修改pythonpath(试不通) windows:PYTHONPATH ...

  6. python heapq模块查找集合中最大或最小n个元素列表

    怎样从一个集合中获得最大或者最小的 N 个元素列表? heapq 模块有两个函数: nlargest() 和 nsmallest() 可以完美解决这个问题. 举例说明: 一.集合类型 "&q ...

  7. python psutil模块查找进程_psutil获取进程信息

    获取所有进程pid [root@bogon python_auto]# vim process.py !/usr/bin/env python import psutil pids = psutil. ...

  8. 获取 python import模块的路径

    import a_module print a_module.__file__ 上述代码将范围 .pyc 文件被加载的路径,如果需要跨平台解决方案,可用下面代码: import os path = o ...

  9. 【Python】Python3.7.3 - sys.path 模块搜索路径详解

    文章目录 系统参考 sys.path - 模块搜索路径 用户站点目录(user site directory) 安装包到用户站点目录 第三方站点目录 site.py介绍 python启动选项 PYTH ...

最新文章

  1. Internet History, Technology, and Security----第三周
  2. Jenkins之gitlab配置
  3. Use Ghidra To Reverse GenyMotion—Suggestion
  4. python中重要的模块asyncio
  5. 成功解决ModuleNotFoundError: No module named ‘sklearn.lda‘
  6. #C++初学记录#日常学习函数
  7. IoC(控制反转)的主要组件和注入的两种方式
  8. cvpr 注意力机制_视频人员重识别:关系引导空间注意力 + 时间特征提取模型
  9. 最全办公室租赁技巧,让你找到心仪的办公室
  10. 照片转3d模型_云从科技3D人体重建技术刷新3项纪录!仅凭照片即可生成精细模型...
  11. qt toggled trigger clicked区别
  12. 云服务器哪家最好,如何选择云服务器
  13. Python中Scapy使用方法,模块中的常用函数,简单的端口扫描编写
  14. 测试网络连接速度 http://www.phoenixtv.com.cn/home/fhkp/testspeed.htm
  15. CVE PoC的精选列表(三)
  16. 编写宏(macro)时遇到的小错误
  17. 【机器学习】机器学习常见符号
  18. iToo Software推出Forest Pack 6
  19. 绝妙四道题(C语言)
  20. softmax与交叉墒层的实现原理以及梯度计算

热门文章

  1. TIMESAT 无格式文件迭代转tif
  2. UE4C++设置Actor与父Actor的相对位置和相对旋转
  3. 微信支付不能调起微信支付页面
  4. 计算机品牌企业关系图,AJ71C24-S3 画出PLC的I/O点与输入/输出设备的连接图或对应关系表, 三菱AJ71C24-S3 - 广州凌控...
  5. 网络小贷风控有哪些数据接口?
  6. 数字滚动(微信小程序)
  7. 4天狂销20万盒,GMV超5620万,应季爆品有哪些营销关键词?
  8. 水平+垂直 居中的方法
  9. winrar主要参数
  10. 为什么MacBook连接不上阿里云服务器