python module import(自定义module如何导入)

part1 主程序与待导入模块在统一目录下

下面的介绍的前提
1、新建cc.py
2、假设已经存在aa.py,且cc.py与aa.py在同级目录下
3、假设aa中有函数bb
4、想在在cc中导入aa的方法

1、from modulename import functionname(or *)

(前一种导入特定函数语句,后一种导入所以该模块下的函数)
from aa import bb(or from aa import *)
bb #(这样调用bb函数)

2、import modulename

(缺点使用该模块下的函数时,需要声明这个模块的命名空间)
import aa
aa.bb #(这样调用bb函数)

part2 主程序与待导入模块不在统一目录下

上面介绍的是导入模块与主程序在同级目录下的情况,下面介绍不同级目录
明确一点:py找模块时候,只会在sys.path中的路径找,sy路径已经自动中存在当前主程序的目录,但找module时只会查找py文件,不会搜索当前目录的子目录,解决方法后面会说
ps、如何查看sys.path?
import sys
print(sys.path)
1、待导入模块在主程序目录下的一个目录(dir代表目录,mod代表模块)
--dir1
   --mod1.py(主程序)
   --dir2
      --mod2.py(待导入模块)

之前说到找模块时不会在当前目录(dir1)下的子目录找(dir2),所以按照之前part1中所用的import mod2会引起错误
解决方法:在dir2下新建__init__.py

--dir1
   --mod1.py(主程序)
   --dir2
      --__init__.py
      --mod2.py(待导入模块)

这样就会在dir2下找模块了
import dir2.mod2

2、待导入模块在主程序目录上的一个目录(dir代表目录,mod代表模块)
--dir1
   --mod1.py(待导入模块)
   --dir2
      --mod2.py(主程序)

解决方法:在sys.path中添加父目录

import sys
sys.path.append('..')
import mod1

part3总结

1、找模块是在sys.path中找,且当前目录默认存在,不会搜索下一层目录与上一层目录,解决方法参考上面
2、注意module!=function!=dir

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值