首页 > 解决方案 > 如何从一个python脚本导入函数而不调用它

问题描述

我正在尝试page1在库文件中导入一个包含其他函数的函数,以便我可以在该文件中调用它。但是,这会产生以下错误:

Traceback (most recent call last):
  File "/Users/antonios/numworks-math-libs/numworksMath.py", line 1, in <module>
    import numworksLibs
  File "/Users/antonios/numworks-math-libs/numworksLibs.py", line 1, in <module>
    from numworksMath import page1
  File "/Users/antonios/numworks-math-libs/numworksMath.py", line 35, in <module>
    page1()
  File "/Users/antonios/numworks-math-libs/numworksMath.py", line 29, in page1
    numworksLibs.get_ordered_pair(ordered_pair_num, xs, ys)
AttributeError: partially initialized module 'numworksLibs' has no attribute 'get_ordered_pair' (most likely due to a circular import)

我认为这是因为主脚本正在导入库,而库正在导入主脚本(循环导入)。有没有办法可以在 Python 中解决这个问题?我已经尝试了网站上的所有解决方案,并确保没有任何名称与任何 Python 内置库冲突,正如之前在 SO 上的其他帖子中提到的那样。get_ordered_pair也在库文件中定义。

库文件导入:

from numworksMath import page1

主脚本的片段:

import numworksLibs

def page1():

page1包含在没有输入的情况下调用函数时将运行的代码,这在从 Python CLI 导入文件时发生。

标签: python

解决方案


在这种情况下,您真正​​想做的是创建一个单独的文件,例如提到的@Carcigenicate。使用您多次导入的所有代码,并让每个脚本都导入它。对我来说,我创建了一个文件main.py,其中包含需要多次导入的所有代码,然后库文件和主脚本都导入了这个文件。


推荐阅读