Python中导入自定义模块的几种方法总结

当我们编写 Python 代码时,有时可能需要在一个脚本中引用另外一个脚本中的方法或变量,这时我们就需要将这些方法和变量封装进另一个 Python 模块中,然后再在我们需要使用它们的脚本中通过导入这个模块来使用其中的方法和变量。本文将详细讲解 Python 中导入自定义模块的几种方法。

相对导入:

相对导入是指从当前脚本所在的目录开始,按照包名称和目录结构逐层向上导入模块。如果当前脚本并不是在主模块所在的目录下,而是在子模块所在的目录下,则采用相对导入更为直观。

下面的示例演示了相对导入的使用方法:

在目录结构如下的情况下:

├── main_package/
│   ├── __init__.py
│   ├── main_script.py
│   ├── sub_package/
│   │   ├── __init__.py
│   │   ├── sub_script.py

我们需要在子模块 sub_script.py 中导入主模块 main_script.py 中的 test 方法:

from ..main_script import test

test()

绝对导入:

为了避免相对导入中可能会出现模块路径存在歧义的情况,Python3.3 及标准库中已经不再推荐使用相对导入,建议使用绝对导入。

下面的示例演示了绝对导入的使用方法:

在目录结构如下的情况下:

├── main_package/
│   ├── __init__.py
│   ├── main_script.py
│   ├── sub_package/
│   │   ├── __init__.py
│   │   ├── sub_script.py

我们需要在子模块 sub_script.py 中导入主模块 main_script.py 中的 test 方法:

from main_package.main_script import test

test()

添加路径:

有时我们编写的 Python 模块并不在同一目录下,我们需要手动将这个模块所在的目录添加到 Python 搜索路径之中,这个被添加的路径就可以在其他脚本中导入该模块。

下面的示例演示了添加路径的使用方法:

在目录结构如下的情况下:

├── module_package/
│   ├── __init__.py
│   ├── module_script.py
│
├── main_package/
│   ├── __init__.py
│   ├── main_script.py

我们需要在主模块 main_script.py 中导入 module_script.py 中的 test 方法:

import sys
import os

sys.path.append(os.path.join(os.path.dirname(__file__), "..", "module_package"))

from module_script import test

test()

通过在 sys.path 中添加模块 module_script.py 所在的目录的路径,我们可以在主模块中访问并导入该模块。

以上就是 Python 中导入自定义模块的几种方法总结。通过这些方法,我们可以在 Python 中方便地组织模块,使得我们的代码更加结构化、清晰。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中导入自定义模块的几种方法总结 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例

    Python获取基金网站网页内容、使用BeautifulSoup库分析HTML操作示例 在本文中,我们将介绍如何使用Python获取基金网站的网页内容,并使用BeautifulSoup库分析HTML。我们将使用requests库来获取网页内容,使用BeautifulSoup库来分析HTML。以下是详细的步骤和示例。 步骤1:导入必要的库 在使用Python获…

    python 2023年5月15日
    00
  • Python集合set()使用的方法详解

    Python集合set()使用的方法详解 什么是集合set() python中的集合是一种无序的不重复元素的集合,它是通过大括号{}或set()函数创建的。 创建一个集合 可以通过下述两种方式来创建一个集合: 使用大括号{}: my_set = {1, 2, 3} print(my_set) 输出结果: {1, 2, 3} 使用set()函数: my_set…

    python 2023年5月13日
    00
  • Python基于opencv的图像压缩算法实例分析

    Python基于OpenCV的图像压缩算法实例分析 简介 本文介绍了Python基于OpenCV的图像压缩算法的原理及实践,通过两个示例说明了如何使用Python实现图像压缩。 压缩原理 基于OpenCV的图像压缩算法的原理是使用离散余弦变换(DCT)和量化器将图像转换为频域表示,再进行压缩,在解压缩时进行逆变换即可还原图像。其中,量化器是用来将频域数据取整…

    python 2023年6月3日
    00
  • Python Pandas groupby:根据值的条件过滤

    【问题标题】:Python Pandas groupby: filter according to condition on valuesPython Pandas groupby:根据值的条件过滤 【发布时间】:2023-04-02 09:34:02 【问题描述】: 考虑如下的数据框。 import pandas as pd # Initialize da…

    Python开发 2023年4月8日
    00
  • Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程

    来分享一下“Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程”这一完整攻略。 1. 确认环境和工具 首先,需要确认自己所使用的环境和工具。在进行Python GUI程序的开发之前,我们需要安装Python、wxPython和py2exe等相关的工具。可以参考以下步骤进行安装: 安装Python3.x版本:从Python…

    python 2023年6月3日
    00
  • 如何在Python中使用NumPy创建一个矢量

    在Python中使用NumPy创建一个矢量可以分为以下步骤: 安装NumPy库 在命令行中输入以下代码可以安装NumPy库: pip install numpy 导入NumPy库 在代码中需要导入NumPy库: import numpy as np 创建矢量 使用NumPy创建矢量的方式有很多,以下是两种常用方式的示例。 (1)使用np.array方法创建矢…

    python-answer 2023年3月25日
    00
  • Python爬虫实战之爬取某宝男装信息

    Python爬虫实战之爬取某宝男装信息 本文将介绍如何使用Python爬虫爬取某宝男装信息。我们将使用Python的requests库和BeautifulSoup库来实现爬虫功能。以下是完整攻略: 步骤一:分析网页结构 在编写爬虫之前,我们需要先分析网页的结构,确定需要爬取的信息。我们可以使用Chrome浏览器的开发者工具来分析网页结构。以下是分析结果: 网…

    python 2023年5月14日
    00
  • python 同时读取多个文件的例子

    下面是关于”python 同时读取多个文件的例子”的完整攻略,详细步骤如下: 1. 准备多个文件 首先我们需要准备多个文件,假设我们在同一个目录下准备了 3 个文本文件,分别是 file1.txt、file2.txt 和 file3.txt。 2. 导入所需的 Python 模块 接下来我们需要导入所需的 Python 模块,包括 os 和 glob 模块,…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部