【发布时间】:2022-01-20 01:30:29
【问题描述】:
我有两个脚本 a.py 和 b.py。两者都通过提供相关参数独立于命令行工作。这两个脚本都在 linux 机器上运行。这两个脚本都有许多方法和主要方法。如何将 a.py 作为模块调用到 b.py 中?我应该只在 b.py 的顶部“导入 a”,然后在 b.py 的主要方法中调用相关方法吗?或者有没有办法在b.py里面直接调用a.py的main方法?
注意:如果可能的话,我不想创建多个支持文件,例如 setup.py 或 init.py。谢谢
【问题讨论】:
-
YES:我应该在 b.py 的顶部'import a',然后在 b.py 的 main 方法中调用相关方法
-
您是否在脚本中启动代码? IE。
def main()在if __name__ == "__main__":中运行?如果您导入其他文件,那么它将作为主进程运行并停止以前的代码。如果您将在启动函数中有代码,那么您可以使用threading或multiprocessing在单独的线程中运行此函数,以便两者可以同时运行。 -
@Marat:我在某处读到,如果我在顶部导入脚本,它将执行整个脚本。我认为这不会发生,对吗?我可以在适当的位置调用方法来执行它们吗?
-
@furas :我无法理解你想说什么。我需要在调用脚本中的特定位置运行被调用脚本,我不能并行运行它们。如果我在顶部导入脚本并在调用脚本的主要方法中调用非主要方法,它会起作用吗?
-
我在想你需要并行运行它。但是您不需要并行运行,那就更好了。您可以像任何其他模块一样
import并从此脚本执行功能。最终它可能需要在import之前将带有此脚本的文件夹添加到sys.path。