从同一上下文中的python脚本调用python脚本

问题描述 投票:0回答:1

有一个python脚本start_test.py

还有第二个python脚本siple_test.py

# pseudo code:
start_test.py --calls--> subprocess(python.exe simple_test.py, args_simple_test[])

两个脚本的python解释器是相同的。因此,我不想打开新实例,而是直接从simple_test.py运行start_test.py。我需要保留sys.args环境。 nice to have实际上是在simple_test.py中输入以下代码部分:

# file: simple_test.py
if __name__ == '__main__':
    some_test_function()

最重要的是,该方法应该是通用的,而不取决于simple_test.py的内容。

此设置将提供两个好处:

  1. 该呼叫占用的资源少得多
  2. simple_test.py的整个堆栈都可以用pycharm调试

因此,如何在不启动新子进程的情况下从python脚本执行python脚本的调用?

python pycharm
1个回答
1
投票

“执行脚本”是一个模糊的术语。

通常if __name__== "__main__":部分执行参数(sys.argv)解码,然后使用显式参数调用辅助函数。为了清楚起见:它不应做任何其他事情,因为如果不创建新流程就无法调用此额外工作,从而导致您要避免的所有开销。

您只需绕过它并直接调用此实现例程。

所以您最终得到包含以下内容的start_test.py:

from simple_test import worker
# ...
worker(typed_arg1, typed_arg2)
© www.soinside.com 2019 - 2024. All rights reserved.