自己编写的python模块,怎么创建python模块

本文目录一览:

python怎么导入自己写的模块

自己写的模块,要放在需要导入文件同一个目录或者放在lib或者script目录(默认的模块目录)

然后,import

名字

就行。主要不要带后缀,带文件名就行

python中怎么import自己写的模块

(1)主程序与模块程序在同一目录下:

如下面程序结构:

?

1

2

3

`– src

|– mod1.py

`– test1.py

若在程序test1.py中导入模块mod1, 则直接使用import mod1或from mod1 import *;

(2)主程序所在目录是模块所在目录的父(或祖辈)目录

如下面程序结构:

?

1

2

3

4

5

`– src

|– mod1.py

|– mod2

| `– mod2.py

`– test1.py

若在程序test1.py中导入模块mod2, 需要在mod2文件夹中建立空文件__init__.py文件(也可以在该文件中自定义输出模块接口); 然后使用 from mod2.mod2 import * 或import mod2.mod2.

(3)主程序导入上层目录中模块或其他目录(平级)下的模块

如下面程序结构:

?

1

2

3

4

5

6

7

`– src

|– mod1.py

|– mod2

| `– mod2.py

|– sub

| `– test2.py

`– test1.py

若在程序test2.py中导入模块mod1和mod2。首先需要在mod2下建立__init__.py文件(同(2)),src下不必建立该文件。然后调用方式如下:

下面程序执行方式均在程序文件所在目录下执行,如test2.py是在cd sub;之后执行python test2.py

而test1.py是在cd src;之后执行python test1.py; 不保证在src目录下执行python sub/test2.py成功。

?

1

2

3

4

import sys

sys.path.append(“..”)

import mod1

import mod2.mod2

(4)从(3)可以看出,导入模块关键是能够根据sys.path环境变量的值,找到具体模块的路径。这里仅介绍上面三种简单情况。

评论:

win下面cmd当前目录上运行python交互的时候, 当前目录如果是个python包,要在当前交互引入它, 也需要 sys.path.append(“..”), 不过我个人的做法通常是sys.path.insert(0,”..”)

?

1

2

3

4

5

6

c:/py25cd sub

c:/py25python

#import sub #这里提示找不到

import sys

sys.path.insert(0,’..’) #或者sys.path.append(“..”)

import sub #这里引入成功

貌似是大蛇的当前目录是”能识儿子不识父亲”的,

也就是要引入当前包的父包的话,要sys.path.insert(0,’../..’)了…

如何在python中添加自定义模块

通过文件进行设置

在Python的安装目录下,找到 \Lib\site-packages 文件夹,在该文件夹下新建一个以.pth为后缀名的文件,编辑文件,内容为要添加的库路径。(我的文件名命名为..pth)。添加路径示例:文件内容写入要引用的库路径

步骤1:建立文件,可以首先建立一个文本文档,写下路径如D:\\Python\\mulib

步骤2:保存文档时,将文件类型选为所有,文件名为 setpath.pth。文件名为什么无所谓,主要是只有当文档类型选为所有,才可以定义文件类型为.pth

步骤3:将保存好的文件放在Python的site-packages文件夹中就完成了。

Python怎么import自己写的模块

python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。

下面将具体介绍几种常用情况:

(1)主程序与模块程序在同一目录下:

如下面程序结构:

`– src

|– mod1.py

`– test1.py

若在程序test1.py中导入模块mod1, 则直接使用import mod1或from mod1 import *;

(2)主程序所在目录是模块所在目录的父(或祖辈)目录

如下面程序结构:

`– src

|– mod1.py

|– mod2

| `– mod2.py

`– test1.py

若在程序test1.py中导入模块mod2, 需要在mod2文件夹中建立空文件__init__.py文件(也可以在该文件中自定义输出模块接口); 然后使用 from mod2.mod2 import * 或import mod2.mod2.

(3)主程序导入上层目录中模块或其他目录(平级)下的模块

如下面程序结构:

`– src

|– mod1.py

|– mod2

| `– mod2.py

|– sub

| `– test2.py

`– test1.py

若在程序test2.py中导入模块mod1和mod2。首先需要在mod2下建立__init__.py文件(同(2)),src下不必建立该文件。然后调用方式如下:

下面程序执行方式均在程序文件所在目录下执行,如test2.py是在cd sub;之后执行python test2.py

而test1.py是在cd src;之后执行python test1.py; 不保证在src目录下执行python sub/test2.py成功。

import sys

sys.path.append(“..”)

import mod1

import mod2.mod2

(4)从(3)可以看出,导入模块关键是能够根据sys.path环境变量的值,找到具体模块的路径。这里仅介绍上面三种简单情况。

python中,如果自己写的模块与系统模块重名,该怎么调用系统的模块?

sys.path是一个list,存放了当前所有import搜索的路径。

绝大多数情况下,首个元素是””,即空串,也就是说,当你import re的时候,首先搜索的是”re”,这时候就会直接在当前目录搜索到re。如下图:

解决方法也有不止一个:

1,在当前目录创建一个子文件夹,例如mine,在mine里放一个__init__.py,不用有代码,空文件即可。使用的时候:import mine.re

2,在sys.path上做手脚,把第一个空串挪到最后面去:

import sys

sys.path = sys.path[1:]

sys.path.append(“”)

这样当前目录会跑到最后面去,从而达到最后搜索的目的。

不过这很可能有副作用,即你创建的模块,不能和前面搜索路径里的任何文件重名,否则会无法import你的模块。

这也是为什么默认把当前路径放在最前搜索的原因,因为是用户自己写的,显然优先级最高。

尽管就你的问题作出分析和提出一些可能的解决办法,但是严重不建议在实际工程起和系统模块重名的文件名,这是自找麻烦。

当然,研究探讨它的实现原理,始终是值得肯定的。

最后强调一下,当你在当前文件夹创建了一个sys.py时,方法2不好用!

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/196963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-03 13:29
下一篇 2024-12-03 13:29

相关推荐

  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29

发表回复

登录后才能评论