
优雅地导入上一级模块
在python项目中,如何从子模块优雅地导入上一级模块?本文将探讨这个问题,并提供一种优雅且简洁的解决方案。
给定以下文件结构:
config.pymain.py└──folder └──submodule.py
问题在于,要在main.py和submodule.py中使用config.py中的配置参数args。在main.py中,我们可以使用以下语句导入args:
立即学习“Python免费学习笔记(深入)”;
# main.pyfrom config import args
然而,在submodule.py中,从config.py导入args会报错:
valueerror: attempted relative import beyond top-level package
传统的解决方法是将上一级目录添加到sys.path中:
# submodule.pyimport syssys.path.append('..')
但这种方法显得有些冗长和繁琐。有没有更优雅的方法来实现这一目标?
答案是使用importlib包。importlib提供了import_module()函数,可通过模块名称动态导入模块。
在submodule.py中,我们可以使用以下语句导入config模块:
# submodule.pyimport importlibconfig = importlib.import_module('..config')args = config.args
这种方法的好处在于:
无需修改sys.path。可以在运行时动态导入模块。不依赖于当前工作目录。
以上就是Python项目中,如何从子模块优雅地导入上一级模块?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1352588.html
微信扫一扫
支付宝扫一扫