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

yizhihongxing

当我们编写 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 支持向量机(SVM)算法

    下面是关于“详解Python支持向量机(SVM)算法”的完整攻略。 1. 支持向量机(SVM)算法简介 支持向量机(SVM)是一种二分类模型它的基本模型是定义特征空间上间隔最大的线性分类器,其学习策略便是间隔最大化,终可转化为一个凸二次规划问题的求解。SVM算法具有良好的泛化能力和鲁棒性,被广泛用于分类、回归和异常检测等领域。 2. Python实现支持向量…

    python 2023年5月13日
    00
  • python process模块的使用简介

    下面是关于Python Process模块的使用简介: Python的Process模块 Process是Python中用来启动新进程的模块,可以实现跨平台的多进程操作。使用Process模块可以在Python中实现多任务的并发运行,从而有效提升程序的运行效率,加快任务的完成速度。 Process模块的基本使用方法 Python的Process用法类似于Un…

    python 2023年5月19日
    00
  • 如何解决centos7中python-pip模块不存在?

    下面是如何解决CentOS7中Python-pip模块不存在的完整攻略: 问题描述 当在CentOS7上安装了Python之后,使用pip命令会报错: -bash: pip: command not found 解决方案 步骤1:安装EPEL源 首先,我们需要安装EPEL源。EPEL (Extra Packages for Enterprise Linux)…

    python 2023年5月14日
    00
  • 基于Python写一个番茄钟小工具

    好的!基于Python写一个番茄钟小工具可以分为以下步骤: 步骤一:了解番茄工作法 番茄工作法是一种时间管理方法,每25分钟为一组工作时间(即一个“番茄钟”),工作时间结束后休息5-10分钟,并记录完成的工作时间。本小工具就是一个简单的计时器,用于帮助使用者实践番茄工作法。 步骤二:安装必要的库 在 Python 中,可以使用 tkinter 库实现简单的 …

    python 2023年6月2日
    00
  • Python从MySQL数据库中面抽取试题,生成试卷

    1. 安装MySQL数据库 首先需要在本地电脑安装MySQL数据库。安装完成后,需要创建一个名为”test”的数据库,并在其中创建”questions”表。 2. python连接MySQL数据库 需要安装python中的pymysql包,并连接到之前创建的test数据库中的questions表。 import pymysql # connect to da…

    python 2023年6月3日
    00
  • Python爬取雪中悍刀行弹幕分析并可视化详程

    下面是“Python爬取雪中悍刀行弹幕分析并可视化详程”的完整攻略。 1. 网页爬取 我们可以使用Python中的requests库来下载网页源代码,并使用beautifulsoup库来解析网页。 import requests from bs4 import BeautifulSoup url = ‘https://www.bilibili.com/vid…

    python 2023年5月20日
    00
  • 拆分字节数组然后在Python中将其转换为字符串的有效方法

    【问题标题】:Efficient way to split a bytes array then convert it to string in Python拆分字节数组然后在Python中将其转换为字符串的有效方法 【发布时间】:2023-04-04 11:32:01 【问题描述】: 我有一个包含字符的 numpy 字节数组,后跟 b”,然后是其他字符(…

    Python开发 2023年4月6日
    00
  • Python全景系列之数据类型大盘点

    Python全景系列之数据类型大盘点 本攻略将详细讲解Python的数据类型,包括基本数据类型、容器类型以及自定义类型。我们将从数据类型的概念、特点、使用场景等方面全方位地介绍Python的数据类型。 1. 基本数据类型 1.1 数字类型 Python中的数字类型包括整数类型(int)、浮点数类型(float)、复数类型(complex)。它们都支持基本运算…

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