如何testing一个Python模块是否已被导入?

如何testing一个模块是否已被导入python?

例如我需要的基础知识:

if not has_imported("sys"): import sys 

 if not has_imported("sys.path"): from sys import path 

谢谢!

RGS。

感谢您的所有意见:代码已粘贴在这里。 自动导入文件夹中的所有子模块,然后调用相同的名称函数 – python运行时检查相关

如果你想通过不导入东西两次来优化,那么省去麻烦,因为Python已经处理好了。

如果你要这样做,以避免名称错误或什么:修复你的草率编码 – 确保你不需要这个,即定义(导入)所有东西之前,你曾经使用它(如果import:一旦在启动,在模块级)。

如果你有一个很好的理由: sys.modules是一个包含所有已经导入的模块的字典。 但是它只包含模块,并且由于from <module> import <variable>工作的方式(像往常一样导入整个模块,从中导入所有东西), from sys import path只会将sys添加到sys.modules如果它尚未在启动时导入)。 from pkg import module添加pkg.module就像您所期望的那样。

我觉得已经被接受的答案是不完全正确的。

当多次导入相同的模块时,Python 仍然有开销 。 Python 不会给你一个错误 ,但是这并不意味着它不会减慢你的脚本。 正如您将从下面的URL中看到的,多次导入模块时会产生大量开销。

例如,在某种情况下,除特定条件外,您可能不需要某个模块,如果该模块较大或开销较高,则只有条件导入才有意义。 这并不意味着你是一个草率的编码器。

https://wiki.python.org/moin/PythonSpeed/PerformanceTips#Import_Statement_Overhead

 from sys import modules try: module = modules[module_name] except KeyError: __import__('m') 

这是我在运行时更改代码的解决scheme!