python - 如何从一个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 导入文件时发生。
解决方案
在这种情况下,您真正想做的是创建一个单独的文件,例如提到的@Carcigenicate。使用您多次导入的所有代码,并让每个脚本都导入它。对我来说,我创建了一个文件main.py
,其中包含需要多次导入的所有代码,然后库文件和主脚本都导入了这个文件。
推荐阅读
- java - 使用 AspectJ 的日志控制器
- c# - 寻找将温莎生活方式传递到图书馆的方法
- javascript - 如何正确使用 Javascript onclick 函数?
- sql-server - 计算工作年限
- visual-studio-code - 更改 Cloud Code VSCode 扩展的 skaffold 命令
- nginx - NGINX - 缓存静态(CSS / JS)文件后出现404错误
- python - 我的程序无法将 .isdigit 识别为 True
- javascript - 如何将我的 javascript 地图放入 php 文件
- c++ - 无法在 C++ 中使用前向声明
- python - Keras / NN - 对输入应用不同的缩放/归一化