【python3】 cmd命令行下,导入包或者导入模块

文章前置:

1.默认是python3 

2.默认代码放在默认在lib路径下,如果想看关于路径可以看另外一篇文章-->

3.window 下进入cmd命令,python3  (这是我改名成python3了)

一、导入包

先来一个测试数据准备工作下:

文件目录结构(包):
TestMsg/
    __init__.py
    recvmsg.py
    sendmsg.py

 

模块中包含的函数(功能):
sendmsg.py
    test1()
recvmsg.py
    test2()

 

__init__的代码:

#空

sendmsg的代码:

def test1():
    print("---测试-sendmsg模块-test1函数---")

recvmsg的代码

def test2():
    print("---测试-recvmsg模块-test2函数---")

(一)、import导入

想使用包中的模块:

import TestMsg.sendmsg

TestMsg.sendmsg.test1()

注意:要细化到模块,如果只写import 包名 ,那么只需要在init.py文件中再添加行 from . import 模块名(一个点代表当前层),才能运行成功

执行结果

【python3】 cmd命令行下,导入包或者导入模块_第1张图片

想直接导入包!一句话搞定导入包:添加from . import 模块名 ,不添加则会报错

修改__init__.py文件如下:

from . import sendmsg
代码:
import TestMsg

TestMsg.sendmsg.test1()
运行结果:

你会发现问题,我每用包中一个模块,我就要写一句import ,麻烦!

(二)、 from 包名 import *

使用from 语句,需要添加__all__变量,修改__init__.py文件如下:

__all__ = ["sendmsg"]  #控制from语句导入时,能使用的模块,模块名不在这变量里,则无法使用

from . import sendmsg

方便的方法来了,代码:

from TestMsg import *
sendmsg.test1()

 

执行结果:【python3】 cmd命令行下,导入包或者导入模块_第2张图片

发现了吗?导入包是成功的,但是调用报错了,提示不存在?

因为all变量,在init文件中,有变量__all__ = ["sendmsg"] 。控制了你使用from 方式导入

只要修改下init文件就好了,解决报错

__all__ = ["sendmsg","recvmsg"]  #控制from语句导入时,能使用的模块,模块名不在这变量里,则无法使用

from . import sendmsg

总结:以上方法都可以,如果将来路径更改,有的from语句会失效。大家根据自己喜好和需求来吧。

 

二、导入模块

(一)、import导入

 

(二)、 from 包名 import *

你可能感兴趣的:(【python3】 cmd命令行下,导入包或者导入模块)