python如何导入自己的模块

作者:Aamax 时间:2022-05-21 08:14:57 

如何导入自己的模块

在实际的编程生活当中,我们除了会去import已经存在的包外,当然还会偶尔自定义一些模块,然后来导入,其实一般而言,自定义的模块也就是一系列的脚本,具体的,自己写好了脚本,然后导入,导入的情况分为以下情况:

1.自定义模块与所需要调用自定义模块的文件在同一文件夹下

这时的调用就较为简单了,直接导入即可

python如何导入自己的模块

比如说我想要在learnpandas中导入m1.py,只需要在learnpandas脚本开头声明import m1.py即可

2.自定义模块与所需要调用自定义模块的文件不在同一文件夹下

其实这个的话,如果不怕麻烦的话可以用1中的方法,把需要导入的文件一个一个手动拖到当前文件夹中,,,当然这个方法时比较复杂的,尤其是要导入的文件较多的时候,,,,

这个时候有一个更聪明的方法

假设下图是我们需要导入的文件目录

python如何导入自己的模块

在这种情况下,我们在folder中新建一个__init__.py文件,此时的folder不再是一个普通的文件夹,而是一个包 package

python如何导入自己的模块

在这个时候,想导入哪一个文件的话就只需在文件开头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项目组织结构,基本都能解决这种找不到本地模块的问题。

以下图为例说明

python如何导入自己的模块

首先是创建一个项目文件夹:myproject ,这里面包括启动文件start.py、README.md文件以及你的项目文件myproject文件夹。这就是基本的项目结构。

这样你就能在myproject文件夹里面的py文件里使用相对路径导入其他文件夹下的模块了。

其实,Scrapy项目的目录结构也大致是这样的,大家可以看看创建scrapy项目时的目录结构。

mytask.py

python如何导入自己的模块

这里就很方便使用 “.” 和 “..” 来表示当前路径和上一级路径了start.py

python如何导入自己的模块

这里要注意,启动文件start.py中不能使用".“和”.."等来导入本地模块,因为主模块(启动文件)不能使用相对导入。

最后,只要在命令行输入python start.py就可以运行程序了。

来源:https://blog.csdn.net/bai_and_hao_1314/article/details/84498231

标签:python,导入,模块
0
投稿

猜你喜欢

  • Python中正反斜杠(‘/’和‘\\’)的意义与用法

    2023-01-22 14:45:04
  • IDEA 链接Mysql数据库并执行查询操作的完整代码

    2024-01-21 07:03:58
  • Python判断文本中消息重复次数的方法

    2022-11-12 10:00:54
  • 天气预报调用代码

    2008-11-18 15:59:00
  • Python爬取门户论坛评论浅谈Python未来发展方向

    2021-10-26 19:09:12
  • keras使用Sequence类调用大规模数据集进行训练的实现

    2021-01-03 20:24:35
  • Python编程matplotlib绘图挑钻石seaborn小提琴和箱线图

    2022-03-06 20:08:29
  • Python脚本实现虾米网签到功能

    2021-11-23 14:37:53
  • CSS改变字体而不影响网页

    2010-10-20 20:11:00
  • Python类的多重继承问题深入分析

    2023-08-13 14:41:17
  • Python使用文件操作实现一个XX信息管理系统的示例

    2022-07-12 15:28:31
  • python使用matplotlib绘制雷达图

    2022-10-10 16:37:41
  • 对numpy和pandas中数组的合并和拆分详解

    2021-04-23 22:51:50
  • ASP实现表单中容量大的数据的提交方法

    2008-10-16 11:07:00
  • 支持多风格变换的ASP分页类

    2007-10-13 18:48:00
  • Python3 queue队列模块详细介绍

    2023-10-03 05:10:51
  • Golang多线程刷票的实现代码

    2024-02-05 23:08:47
  • Python 字符串操作详情

    2023-02-04 19:03:59
  • mac安装mysql初始密码忘记怎么办

    2024-01-16 20:42:45
  • django settings.py配置文件的详细介绍

    2022-09-20 07:40:33
  • asp之家 网络编程 m.aspxhome.com