文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python中的module和package怎么用

2023-06-30 02:29

关注

这篇文章主要介绍“python中的module和package怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python中的module和package怎么用”文章能帮助大家解决问题。

在 package 下继续嵌套一个 package ,项目目录如下

pkg1---__init__.py---mod1.py------pkg2---------__init__.py---------mod2.py
import pkg1.pkg2.mod2

我们尝试将 mod2 进行导入,这一次将先导入 pkg1 然后 pkg2 最后导入 mod2

import pkg1import pkg2import mod2

从输出上来看,我们发现 mod1 并没有自动被导入进来。

import pkg1.pkg2.mod2pkg1.pkg2.mod2.say_hi()

我们通过pkg1.pkg2.mod2.say_hi()来访问 mod2 中 say_hi 函数。

print('pkg1' in sys.modules)#Trueprint('pkg1.pkg2' in sys.modules)#Trueprint('pkg1.pkg2.mod2' in sys.modules)#True

通过给导入 module 起一个别名方式来快捷地访问 mod2 module 对象的属性。python 会自动执行可以访问到 mod2 经过的 package ,通过输出不难发现这些 package 已经被导入,并添加到了 sys.modules 缓存中。

import pkg1.pkg2.mod2 as mod2mod2.say_hi()
pkg1---__init__.py---mod1.py------pkg2---------__init__.py---------mod2.pymain.py

在 pkg1 package 下 __init__.py

import pkg1.pkg2.mod2print("import pkg1")

这我们在 pkg1 package 下的 __init__.py 文件导入 mod2 module 是绝对路径 pkg1.pkg2.mod2。表示我们执行 __init__.py 文件是在 pkg1 外面执行,所以路径中也包含了 pkg1,对于这个 project 来说,main.py 是入口文件,要执行这个项目,我们只需要执行文件夹下 main.py 文件即可。pkg1 和 main.py 位于同一个目录级别,任何子模块(sub-module)都是

import pkg1.pkg2.mod2 as mod2mod2.say_hi()

为了解释我们进一步说明,我们再去创建一个项目,项目下放两个

main.pymy_mod.py
import socketx=2def say_hi():    print("say hi from my mod")

在 main.py 代码如下

import my_mod as modprint(mod.x)print(mod.socket.gethostname())

从而我们知道,我们在 main.py 导入 my_mod 作为,然后在 my_mod 文件导入 socket module 可以通过 mod.socket 导入。

server---app.py

这里我们 app.py 里只添加了一个语句,在终端输出

print("running app")

在 python 中,可以在目录下搜索指定的文件并执行,python 解释器提供 -m 参数可以让我们指定module 名称来执行一个 python module 文件,所以可以通过下面语句来运行 server 文件夹下的 app.py 文件。

python -m server.app

python 会在 sys.path 路径搜索 `server/app.py

我们也可以将 server 下的 app.py 重命名为 __main__.py 如下

server---__main__.py

这样就可以直接通过 python -m server 语句来执行 server package 下的 __main__.py 文件。当然我们可以同时在 server package 创建一个 __init__.py 和 __main__.py 两个文件。

关于“python中的module和package怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯