Python中如何添加自定义模块

作者:silencement 时间:2023-06-09 23:24:38 

一般来说,我们会将自己写的Python模块与python自带的模块分开存放以达到便于维护的目的。那么如何在Python中添加自定义的模块呢?

在解答这个问题之前,我们首先要明确两点:

1.严格区分包(package)和文件夹。包的定义就是包含__init__.py的文件夹。如果没有__init__.py,那么就是普通的文件夹。

2.模块导入写法,注意只要包路径,不要文件夹路径。

Python 运行环境在查找库文件时是对 sys.path 列表进行遍历,如果我们想在运行环境中注册新的类库,主要有以下2种方法:

1. 在sys.path列表中添加新的路径。

2. 将库文件复制到sys.path列表中的目录里(如site-packages目录)。

我们可以通过运行一下代码来查看sys.path


import sys
print sys.path

运行结果

['/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/System/Library/Frameworks/Python.

framework/Versions/2.7/lib/python2.7/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/

lib/python/PyObjC', '/Library/Python/2.7/site-packages']

这两种办法中第一种比较简单,而且对环境的影响最小。

下面我们来看一下第一种方法具体如何操作:

在python安装目录的site-package文件夹中新建pythontab.pth,上面site-package的路径是:/Library/Python/2.7/site-packages,文件的内容是:需要导入的package所在的文件夹路径。

这样,Python 在遍历已知的库文件目录过程中,如果见到一个 .pth 文件,就会将文件中所记录的路径加入到 sys.path 设置中,这样 .pth 文件说指明的package也就可以被Python运行环境顺利找到, 我们就可以像使用内置模块一样引入自定义模块了。

如果缺省的sys.path中没有含有自己的模块或包的路径,我们也可以使用sys.path.apend方法来动态加入包路径。

知识点扩展:

Python中添加自定义模块原则:

1. 严格区分包和文件夹。包的定义就是包含__init__.py的文件夹。如果没有__init__.py,那么就是普通的文件夹。

2. 导入package。 在python 安装目录的site-package文件夹中新建xxx.pth,内容是需要导入的package所在的文件夹路径。

3. 导入模块。就是一般的模块导入写法,注意只要包路径,不要文件夹路径。

来源:https://www.py.cn/faq/python/11243.html

标签:Python,自定义模块
0
投稿

猜你喜欢

  • 谈谈如何手动释放Python的内存

    2023-09-22 13:03:57
  • ADO的错误码对应的含义

    2007-10-22 17:31:00
  • 删除多余的属性 xmlns=""

    2010-08-24 18:41:00
  • python修改list中所有元素类型的三种方法

    2023-10-02 15:26:29
  • Quester解读17条广告效果测定

    2007-11-27 12:51:00
  • Python析构函数__del__定义原理解析

    2023-01-02 15:20:29
  • python连接远程ftp服务器并列出目录下文件的方法

    2023-10-20 10:35:04
  • 关于ASP eof与bof 区别分析

    2011-03-11 11:14:00
  • Python NLP开发之实现聊天机器人

    2021-12-21 18:04:48
  • ASP 判断是否有中文的代码

    2011-04-15 11:07:00
  • python+Selenium自动化测试——输入,点击操作

    2023-08-09 07:20:50
  • 简单好用的PHP分页类

    2023-11-22 09:32:39
  • python编写图书管理系统

    2022-04-12 11:07:21
  • MySQL8.0.21.0社区版安装教程(图文详解)

    2024-01-20 06:33:58
  • Python中的内存管理之python list内存使用详解

    2023-03-20 01:21:02
  • python中有关时间日期格式转换问题

    2023-03-17 07:43:12
  • python不到50行代码完成了多张excel合并的实现示例

    2023-04-11 10:41:39
  • Flask路由尾部有没有斜杠有什么区别

    2021-03-17 12:00:58
  • python调用c++ ctype list传数组或者返回数组的方法

    2021-09-28 01:24:04
  • 详细介绍Python函数中的默认参数

    2021-02-14 09:41:47
  • asp之家 网络编程 m.aspxhome.com