正确导入Python中的模块 [英] Properly importing modules in Python

查看:25
本文介绍了正确导入Python中的模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何设置模块导入,以便每个模块可以访问所有其他模块的对象?

我有一个中等大小的Python应用程序,模块文件位于不同的子目录中。我已经创建了将这些子目录附加到sys.path的模块,并使用import thisModule as tm导入了一组模块。使用该限定来引用模块对象。然后我使用from moduleImports import *将该模块导入到其他模块中。代码现在是草率的,并且有几个这样的东西,通常是重复的。

首先,应用程序失败,因为一些模块引用未分配。此代码在单元测试时运行。

第二,我担心会导致递归模块导入的问题。导入模块导入导入此模块,它导入模块导入。。。。

执行此操作的正确方法是什么?

推荐答案

"我有一个中等大小的应用程序,其模块文件位于不同的子目录中。"

很好。绝对确保每个目录包含一个__init__.py文件,以便它是一个包。

"我已创建将这些子目录附加到sys.path"

的模块

坏。使用PYTHONPATH或安装整个结构Lib/site-packages。不要动态更新sys.path。这是一件坏事。难以管理和维护。

"使用import thisModule as tm导入一组模块。"

说不通。也许您的结构中的每个模块都有一个import thisModule as tm。这是典型的标准做法:只导入您需要的模块,不导入其他模块。

"然后使用from moduleImports import *将该模块导入到其他模块"

坏。不要随便进口一堆东西。

每个模块都应该有一个较长的列表,其中列出了它需要的具体内容。

import this
import that
import package.module

显式列表。没有魔法。没有动态更改为sys.path

我当前的项目有100个模块,十几个包。每个模块都只导入其所需的内容。没有魔法。

这篇关于正确导入Python中的模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆