python如何导入自己的模块
作者:Aamax 发布时间:2022-05-21 08:14:57
如何导入自己的模块
在实际的编程生活当中,我们除了会去import已经存在的包外,当然还会偶尔自定义一些模块,然后来导入,其实一般而言,自定义的模块也就是一系列的脚本,具体的,自己写好了脚本,然后导入,导入的情况分为以下情况:
1.自定义模块与所需要调用自定义模块的文件在同一文件夹下
这时的调用就较为简单了,直接导入即可
比如说我想要在learnpandas中导入m1.py,只需要在learnpandas脚本开头声明import m1.py即可
2.自定义模块与所需要调用自定义模块的文件不在同一文件夹下
其实这个的话,如果不怕麻烦的话可以用1中的方法,把需要导入的文件一个一个手动拖到当前文件夹中,,,当然这个方法时比较复杂的,尤其是要导入的文件较多的时候,,,,
这个时候有一个更聪明的方法
假设下图是我们需要导入的文件目录
在这种情况下,我们在folder中新建一个__init__.py文件,此时的folder不再是一个普通的文件夹,而是一个包 package
在这个时候,想导入哪一个文件的话就只需在文件开头import folder.filename即可(记得要先将自定义库路径添加到Python的库路径中)
3.找到本地库的路径
然后将文件拷进去即可
4.手动给python添加搜索路径
具体做法是:
在python安装目录的\Lib\site-packages文件夹中建立一个.pth文件,内容为自己写的库绝对路径
- - - - - - - - - - - - - - - - - 分割线- - - - - - - - - - - - - - - - -
将自定义库的路径添加到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会在以下路径中搜索它想要寻找的模块:
1. 程序所在的文件夹
2. 标准库的安装路径
3. 操作系统环境变量PYTHONPATH所包含的路径
导入本地模块报错的问题
很多时候,我们在写一个python项目时,都会分模块来写,在一个模块中导入自己写的另一个模块,最后在写一个启动程序,但运行启动程序时往往会报错说找不到你写的模块,对此,这里教大家一种通用且正规的python项目组织结构,基本都能解决这种找不到本地模块的问题。
以下图为例说明
首先是创建一个项目文件夹:myproject ,这里面包括启动文件start.py、README.md文件以及你的项目文件myproject文件夹。这就是基本的项目结构。
这样你就能在myproject文件夹里面的py文件里使用相对路径导入其他文件夹下的模块了。
其实,Scrapy项目的目录结构也大致是这样的,大家可以看看创建scrapy项目时的目录结构。
mytask.py
这里就很方便使用 “.” 和 “..” 来表示当前路径和上一级路径了start.py
这里要注意,启动文件start.py中不能使用".“和”.."等来导入本地模块,因为主模块(启动文件)不能使用相对导入。
最后,只要在命令行输入python start.py就可以运行程序了。
来源:https://blog.csdn.net/bai_and_hao_1314/article/details/84498231


猜你喜欢
- 任务描述本关任务:利用 PyEcharts 绘制一个基本的漏斗图。相关知识为了完成本关任务,你需要掌握:1. Python 的基本语法2.
- 在实际生活中,经常会有文件重复的困扰,即同一个文件可能既在A目录中,又在B目录中,更可恶的是,即便是同一个文件,文件名可能还不一样。在文件较
- Tkinter库制作记事本现在为了创建这个记事本,你的系统中应该已经安装了 Python 3 和 Tkinter。您可以根据系统要求下载合适
- 本文实例讲述了Python基于Matplotlib库简单绘制折线图的方法。分享给大家供大家参考,具体如下:Matplotlib画折线图,有一
- 最近工作上有个需求,当爬虫程序遇到异常的时候,需要通知相应的人员进行修复。如果是国外可能是通过邮件的方式来通知,但国内除了万年不变的 qq
- 目录1、分布式事务2、SAGA3、SAGA 实践4、处理网络异常5、处理回滚6、小结银行跨行转账业务是一个典型分布式事务场景,假设 A 需要
- 基本思路是使用opencv来把随机生成的字符,和随机生成的线段,放到一个随机生成的图像中去。虽然没有加复杂的形态学处理,但是目前看起来效果还
- 最近准备使用Python+Hadoop+Pandas进行一些深度的分析与机器学习相关工作。(当然随着学习过程的进展,现在准备使用Python
- Python3 正则表达式正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。本文主要阐述re包中的主要函数。
- 目录准备xlrd 读取 Excelxlwt 写入 Excel进阶用法最后准备使用 Python 操作 Excel 文件,常见的方式如下:xl
- 网页版面布局的方法及技巧,版面指的是浏览器看到的完整的一个页面(可以包含框架和层)。因为每个人的显示器分辨率不同,所以同一个页面的大小可能出
- 1,打开cmd安装PyQt5pip install pyqt52,PyQt5不再提供Qt Designer等工具,所以需要再安装pyqt5-
- 本文实例讲述了python对象转字典的两种实现方式。分享给大家供大家参考,具体如下:一. 方便但不完美的__dict__对象转字典用到的方法
- 1. os.system(shell_command)直接在终端输出执行结果,返回执行状态0,1此函数会启动子进程,在子进程中执行comma
- 介绍Addit 是一个Python模块,除了提供标准的字典语法外,Addit 生成的字典的值既可以使用属性来获取,也可以使用属性进行设置。这
- 本文实例讲述了php面象对象数据库操作类。分享给大家供大家参考。具体实现代码如下://此处构造一个数据库操作类,封装所有数据库操作 //可以
- 以下是一个基于 Vue 3 实现的简单日历组件的代码示例。这个日历组件包含了前一个月、当前月、下一个月的日期,并且可以支持选择日期、切换月份
- 引言最近研究Go爬虫相关的知识,使用到goquery这个库比较多,尤其是对爬取到的HTML进行选择和查找匹配的内容时,goquery的选择器
- 解决方法:1.首先你需要在自己的app下面创建2个目录 static 和 templatesstatic下存放静态文件,templates下
- 返回函数所谓返回函数,顾名思义,就是把函数作为返回值。高阶函数除了可以将函数作为参数之外,还可以将函数作为结果进行返回。下面来实现一个可变参