【问题标题】:calling one python script as a module within another python script and both scripts should work independently from command line as well将一个 python 脚本作为另一个 python 脚本中的模块调用,并且两个脚本也应该独立于命令行工作
【发布时间】: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__": 中运行?如果您导入其他文件,那么它将作为主进程运行并停止以前的代码。如果您将在启动函数中有代码,那么您可以使用threadingmultiprocessing 在单独的线程中运行此函数,以便两者可以同时运行。
  • @Marat:我在某处读到,如果我在顶部导入脚本,它将执行整个脚本。我认为这不会发生,对吗?我可以在适当的位置调用方法来执行它们吗?
  • @furas :我无法理解你想说什么。我需要在调用脚本中的特定位置运行被调用脚本,我不能并行运行它们。如果我在顶部导入脚本并在调用脚本的主要方法中调用非主要方法,它会起作用吗?
  • 我在想你需要并行运行它。但是您不需要并行运行,那就更好了。您可以像任何其他模块一样import 并从此脚本执行功能。最终它可能需要在import之前将带有此脚本的文件夹添加到sys.path

标签: python module


【解决方案1】:

不确定它是否是最好的方法,但它现在有效。我在顶部导入了另一个脚本(它在服务器上的同一目录中)。然后在调用脚本中创建一个新方法并调用所有相关方法以创建一个单独的包,然后在 main 方法中调用这个新方法。它对我有用。我将用那张纸条结束这个问题。谢谢——

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多