python如何导入自己的模块

 更新时间:2022年02月11日 08:56:32   作者:Aamax  
这篇文章主要介绍了python如何导入自己的模块,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

如何导入自己的模块

在实际的编程生活当中,我们除了会去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就可以运行程序了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python利用多进程将大量数据放入有限内存的教程

    Python利用多进程将大量数据放入有限内存的教程

    这篇文章主要介绍了Python利用多进程将大量数据放入有限内存的教程,使用了multiprocessing和pandas来加速内存中的操作,需要的朋友可以参考下
    2015-04-04
  • python人工智能tensorflow函数np.random模块使用

    python人工智能tensorflow函数np.random模块使用

    这篇文章主要为大家介绍了python人工智能tensorflow函数np.random模块使用方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 如何在Python中对文件进行操作

    如何在Python中对文件进行操作

    这篇文章主要介绍了如何在Python中对文件进行操作,文章围绕主题展开内容,即使用Python中内置的open()函数来打开文件,返回文件对象,并对文件进行处理
    2022-08-08
  • 详解Python的Lambda函数与排序

    详解Python的Lambda函数与排序

    本篇文章主要是介绍了Python的Lambda函数与排序,简单的介绍了Lambda函数的用法和排序,有需要的朋友可以了解一下。
    2016-10-10
  • pytorch AvgPool2d函数使用详解

    pytorch AvgPool2d函数使用详解

    今天小编就为大家分享一篇pytorch AvgPool2d函数使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python同步方法变为异步方法的小技巧分享

    Python同步方法变为异步方法的小技巧分享

    同步和异步关注的是消息通信机制,下面这篇文章主要给大家介绍了关于Python同步方法变为异步方法的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • Python 70行代码实现简单算式计算器解析

    Python 70行代码实现简单算式计算器解析

    这篇文章主要介绍了Python 70行代码实现简单算式计算器解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • python pandas模糊匹配 读取Excel后 获取指定指标的操作

    python pandas模糊匹配 读取Excel后 获取指定指标的操作

    这篇文章主要介绍了python pandas模糊匹配 读取Excel后 获取指定指标的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 基于TensorBoard中graph模块图结构分析

    基于TensorBoard中graph模块图结构分析

    今天小编就为大家分享一篇基于TensorBoard中graph模块图结构分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • pyinstaller执行报错的问题解决

    pyinstaller执行报错的问题解决

    有时候,PyInstaller可能无法正确识别和打包所有的依赖项,导致名称错误,本文主要介绍了pyinstaller执行报错的解决方案,感兴趣的可以了解一下
    2023-11-11

最新评论