python 中常见的 import 模块的方法(总结)

本文介绍了在Python编程中如何处理不同目录层级的模块导入问题,包括同级目录、子目录及上级目录下的模块调用方法。

在用python进行编程时,经常会使用第三方模块包。这种包我们可以通过 python setup install 进行安装后,通过 import XXX或from XXX import yyy 进行导入。
不过如果是自己遍写的依赖包,又不想安装到 python 的相应目录,可以放到本目录里进行import进行调用;为了更清晰的理清程序之间的关系,例如我们会把这种包放到lib目录再调用。

同级目录下的调用

  程序结构如下:

-- src
    |-- mod1.py
    |-- test1.py

  若在程序test1.py中导入模块mod1, 则直接使用

import mod1

from mod1 import *;

调用子目录下的模块

  程序结构如下:

-- src
    |-- mod1.py
    |-- lib
    |    |-- mod2.py
    |-- test1.py

  这时看到test1.py和lib目录(即mod2.py的父级目录),如果想在程序test1.py中导入模块mod2.py ,可以在lib件夹中建立空文件init.py文件(也可以在该文件中自定义输出模块接口),然后使用:

from lib.mod2 import *

import lib.mod2.

调用上级目录下的文件

  程序结构如下:

-- src
    |-- mod1.py
    |-- lib
    |    |-- mod2.py
    |-- sub
    |    |-- test2.py

  这里想要实现test2.py调用mod1.py和mod2.py ,做法是我们先跳到src目录下面,直接可以调用mod1,然后在lib上当下建一个空文件init.py ,就可以像第二步调用子目录下的模块一样,通过import lib.mod2进行调用了。具体代码如下:

import sys
sys.path.append("..")
import mod1
import lib.mod2

  这些细碎的知识很琐碎,有时候到很后面的时候,会突然发现,前面有些只是都会忘了。因此就把这些记下来,方便查阅。

<think>我们正在讨论Python中需要import导入的模块。根据引用内容,Python模块可以分为内置模块、第三方模块和自定义模块。具体来说: 1. **内置模块(Standard Library Modules)**:Python自带的标准库模块,无需额外安装,例如`math`, `os`, `sys`, `datetime`等。这些模块提供了基础功能。 2. **第三方模块(Third-party Modules)**:通过pip等包管理工具安装的模块,例如`numpy`, `pandas`, `requests`等。这些模块需要先安装才能导入。 3. **自定义模块(Custom Modules)**:用户自己编写的`.py`文件,可以通过导入来复用代码。 根据引用[1]和[2],导入模块的基本语法是`import module_name`,或者使用`from module_name import something`。引用[3]还提到了使用`from module_name import *`可以导入模块中的所有成员,但通常不推荐这样做,因为可能会引起命名冲突。 引用[4]和[5]则讨论了自定义模块的导入,以及导入时可能出现的命名覆盖问题。 因此,Python中需要import导入的模块包括: - 所有不在当前文件中的代码(无论是内置模块、第三方模块还是自定义模块)都需要通过import语句导入才能使用。 下面我们具体展开回答。 </think>### Python 中需要 `import` 导入的模块分类 在 Python 中,需要通过 `import` 语句导入的模块可分为三类,其导入原理和特性如下[^1]: #### 一、内置标准模块 Python 自带约 **200+ 标准模块**,需显式导入才能使用核心功能: ```python import math # 数学计算 print(math.sqrt(16)) # 开方运算 → 4.0 import os # 操作系统接口 print(os.getcwd()) # 获取当前目录 ``` **典型模块**: - `sys`:解释器交互(命令行参数等) - `datetime`:日期时间处理 - `json`:JSON 数据解析 - `re`:正则表达式[^2] #### 二、第三方模块 通过 `pip install` 安装的扩展库,必须导入才能调用: ```python # 安装:pip install requests import requests # HTTP 请求库 response = requests.get("https://api.example.com/data") ``` **常见第三方库**: | 模块名称 | 用途 | 安装命令 | |---------------|--------------------------|------------------------| | `numpy` | 科学计算 | `pip install numpy` | | `pandas` | 数据分析 | `pip install pandas` | | `matplotlib` | 数据可视化 | `pip install matplotlib`| | `tensorflow` | 机器学习 | `pip install tensorflow`| #### 三、自定义模块 用户编写的本地 `.py` 文件,需特殊导入方式: ```python # 项目结构: # ├── main.py # └── utils/ # └── helper.py # 导入方式(跨文件夹): from utils.helper import custom_function ``` **导入注意事项**[^4][^5]: 1. **路径问题**:确保模块所在目录在 `sys.path` 中 2. **命名冲突**:使用 `import module as alias` 避免命名覆盖 3. **循环导入**:避免 A 导入 B 同时 B 导入 A 4. **作用域差异**: - `import module`:需用 `module.func()` 调用 - `from module import func`:可直接 `func()` #### 模块导入的数学原理 模块系统本质是**命名空间映射**: $$ \text{import} : \text{Module} \to \text{Namespace} $$ 其中命名空间满足: $$ \text{Namespace} \subseteq \{ \text{函数}, \text{类}, \text{变量} \} \times \text{标识符} $$ #### 最佳实践 1. **优先使用明确导入**: ```python from math import sqrt # 明确导入特定函数 ``` 2. **避免通配符导入**(易引发冲突)[^3]: ```python # 不推荐:可能覆盖现有名称 from os import * ``` 3. **自定义模块使用相对导入**: ```python from .submodule import tool # 当前包内导入 ``` > 关键点:所有**非当前文件定义**的功能(包括 Python 内置功能)均需通过 `import` 显式导入才能使用[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值