Python导入自定义模块与外部文件的5种方法及路径配置详解

顾言
顾言
发布时间:2026-10-13| 6人浏览过
原创

本文详细解析Python中导入自定义模块和外部文件的多种方法。涵盖同目录直接引入、子目录包结构(__init__.py)、跨文件夹调用、系统site-packages部署以及.pth环境变量配置。重点讲解如何通过动态修改sys.path或静态配置.pth文件来扩展Python的模块搜索路径,解决外部代码引用问题。

在开发过程中,经常需要复用历史代码或满足特定需求而引入外部包。

若基于Web框架如Django,可将需导入的代码写入新建的app中,并在setting文件里注册该app,通常即可正常运行。

对于本地代码环境,存在以下几种处理方案:

第一种方式最为简单,但实用性可能较低。只需将外部文件放置在与调用文件相同的包目录下,即保持同一目录结构。

目录结构示例如下:

------toinvoke.py

------tobeinvoded.py

此时,在toinvoke.py文件中可通过以下方式引入:

import toveinvoked 或 from tobeinvoked import *

即可完成导入。

第二种情况涉及非单文件结构,或无法置于同一目录下的代码,它们位于不同的子目录中。

目录结构示例:

------tobeinvodedA.py

------tobeinvodedB.py

------tobeinvodedC.py

toinvoke.py

此时,需在folder目录下新建一个空的__init__.py文件。此举将folder从普通文件夹转换为Python包(package)。

转换后的目录结构如下:

folder #文件夹 现在的性质为一个python包package

------__init__.py

------tobeinvoked.py

------tobeinvokedA.py

------tobeinvokedB.py

------tobeinvokedC.py

在toinvoke.py中,可通过以下方式引入:

import folder.toveinvoked 或 from folder.tobeinvoked import *

即可完成导入。

第三种情况同理,若folderB中的模块需调用folderA中的模块,方法同上,具体差异已显而易见。

目录结构示例:

------tobeinvoded.py

------tobeinvodedA.py

------tobeinvodedB.py

------tobeinvodedC.py

folderB

--------toinvoke.py

在toinvoke.py中,可通过以下方式引入:

import folder.toveinvoked 或 from folder.tobeinvoked import *

即可完成导入。

第四种方法是将待调用代码拷贝至$PYTHONHOME$\Lib\site-packages目录下,其原理类似于Eclipse插件的安装方式。

第五种方法是在$PYTHONHOME$\Lib\site-packages目录下新建一个.pth文件,例如MyPackage.pth。文件内容应包含包的绝对路径,如:E:/PythonPrj。

通过这种方式,E:/PythonPrj下的所有包均可按照其相对路径进行引入,原理类似于Eclipse插件安装的link方式。

第六种方法与上述类似,也可通过添加环境变量实现,此处不再赘述。

总结:了解Python的包搜索路径至关重要。

Python会在以下路径中搜索所需模块:

1. 程序所在的文件夹

2. 标准库的安装路径

3. 操作系统环境变量PYTHONPATH所包含的路径

若要将自定义库路径添加到Python的库路径中,主要有两种方法:

1. 动态添加库路径。在程序运行过程中修改sys.path的值,手动添加自己的库路径。

import sys

sys.path.append(r'your_path')

2. 在Python安装目录下的\Lib\site-packages文件夹中建立.pth文件,内容指定为自定义库路径。示例如下:

E:\\work\\Python\\http

E:\\work\\Python\\logging

以上关于Python引入自定义模块和外部文件的实例分享完毕,希望能为读者提供参考,并感谢大家的支持。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。