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

本文详细介绍了在Python3环境下,如何在CMD命令行中导入包和模块。通过具体的目录结构和代码示例,阐述了`import`与`from...import *`两种方式的使用,并解释了`__init__.py`文件、`__all__`变量的作用以及导入过程中可能遇到的问题和解决方案。
摘要由CSDN通过智能技术生成

文章前置:

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 模块名(一个点代表当前层),才能运行成功

执行结果

想直接导入包!一句话搞定导入包:添加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()

 

执行结果:

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

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

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

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

from . import sendmsg

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

 

二、导入模块

(一)、import导入

 

(二)、 from 包名 import *

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值