python的import原理和方式总结
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python的import原理和方式总结,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1831字,纯文字阅读大概需要3分钟。
内容图文
python中import的几种方式:
1. import math
import os, math, sys
2. import math as pymath
3. from math import exp
4. from math import *
在理解import原理之前,需要明白python的库,模块,包:
库library:一种特定功能集合的通俗说法
包含一些程序功能,通过import 引入使用对应模块和包,python也具有一些标准库,还有第三方库
模块module:以单个文件为命名空间的代码片段
模块是一个单独的.py文件,模块名就是文件名,一般模块有这段代码,区分是被导入对象还是主程序:if __name__ == "__name__"
包package:由一组模块构成,有层次命名空间的程序功能
包由多个.py文件有组织的构成,包是模块的上一级概念
接着来理解python如何将库,包,模块import进来的:
Python 执行以下语句会发生什么:
1 |
import mod |
当解释器执行上面的import
语句时,它将在从以下来源收集的目录列表中搜索mod.py
:
- 输入脚本的运行目录,如果解释器正在交互运行,则为当前目录。
- PYTHONPATH环境变量(如果已设置)中包含的目录列表。 (“PYTHONPATH”的格式取决于操作系统,但与”PATH”环境变量相似。)
- 在安装 Python 时配置的与安装有关的目录列表。
在 Python 变量 sys.path 中可以访问生成的搜索路径,该变量是从名为 sys 的模块获得的:
1 2 3 4 5 6 |
>>> import sys >>> sys.path [‘‘, ‘/home/roark/personal‘, ‘/home/roark/workdir‘, ‘/usr/local/Python/3.7/lib‘, ‘/usr/local/python3.7/site-packages‘, ‘/usr/local/Python/3.7/python37.zip‘, ‘/usr/local/Python/3.7/lib/python3.7‘] |
因此,为了确保找到我们的模块,我们需要执行以下操作之一:
- 将
mod.py
放置在输入脚本所在的目录或当前工作目录中(如果是交互式的话) - 在启动解释器之前修改”PYTHONPATH”环境变量以包含”mod.py”所在的目录(或将”mod.py”放入”PYTHONPATH”变量已包含的目录之一)
实际上还有一个附加选项:我们可以将模块文件放在您选择的任何目录中,然后在运行时修改 sys.path 使其包含该目录。例如,在这种情况下,我们可以将”mod.py”放在目录”/home/sarah/”中,然后发出以下语句:
1 2 3 4 5 6 7 8 |
>>> sys.path.append(r‘/home/sarah/‘) >>> sys.path [‘‘, ‘/home/roark/personal‘, ‘/home/roark/workdir‘, ‘/home/sarah‘, ‘/usr/local/Python/3.7/lib‘, ‘/usr/local/python3.7/site-packages‘, ‘/usr/local/Python/3.7/python37.zip‘, ‘/usr/local/Python/3.7/lib/python3.7‘] >>> import mod |
导入模块后,我们可以使用模块的file属性来确定找到该模块的位置:
1 2 3 4 5 6 7 |
>>> import mod >>> mod.__file__ ‘/home/sarah/mod.py‘ >>> import datetime >>> datetime.__file__ ‘/usr/local/Python/3.7/lib/datetime.py‘ |
file的目录部分应该是 sys.path 中的目录之一。
原文:https://www.cnblogs.com/zukang/p/14817500.html
内容总结
以上是互联网集市为您收集整理的python的import原理和方式总结全部内容,希望文章能够帮你解决python的import原理和方式总结所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。