Python 从文件导入函数,不包含子导入

Python 从文件导入函数,不包含子导入,python,import,module,Python,Import,Module,我已经创建了一个由我开发的函数组成的python模块。在这个模块中有几个导入,其中一些不是python固有的,需要安装 我有一个实例,我需要一个python脚本来访问这个模块中的函数,但我不希望它尝试使用模块中已经存在的所有其他导入。我在下面创建了一个非常基本的示例,展示了该设置的外观 例如: #this is the module, named MOD.py import win32con def func1(): data = win32con.function() retu

我已经创建了一个由我开发的函数组成的python模块。在这个模块中有几个导入,其中一些不是python固有的,需要安装

我有一个实例,我需要一个python脚本来访问这个模块中的函数,但我不希望它尝试使用模块中已经存在的所有其他导入。我在下面创建了一个非常基本的示例,展示了该设置的外观

例如:

#this is the module, named MOD.py
import win32con
def func1():
    data = win32con.function()
    return data
def func2():
    return do_action()


为什么即使func2不使用win32con模块,它仍会尝试在MOD.py中导入该模块?当然,如果模块没有安装,我会在win32con线上得到一个ImportError。我不希望每次运行甚至不使用这些模块的代码时都必须在计算机上安装这些模块。

如果导入仅在func1中使用,则可以在func1中导入:

#this is the module, named MOD.py
def func1():
    import win32con
    data = win32con.function()
    return data
def func2():
    return do_action()

如果导入仅在func1中使用,则可以在func1中导入:

#this is the module, named MOD.py
def func1():
    import win32con
    data = win32con.function()
    return data
def func2():
    return do_action()

这是否意味着它将在每次调用
func1()
时重新读取文件?否,默认情况下,模块仅加载一次。这是否意味着它将在每次调用
func1()
时重新读取文件?否,默认情况下,模块仅加载一次。似乎您已将不相关的函数分组到一个模块中,您可能希望重新考虑这一点。换句话说,使用多个模块而不是一个模块。为什么不进行重构,使不需要它的模块也不会导入它?如果您将不相关的函数分组到一个模块中,您可能希望重新考虑这一点。换句话说,使用多个模块而不是一个模块。为什么不进行重构,使不需要它的模块也不导入它呢?