首页 > 解决方案 > Python无法通过从另一个python脚本导入函数的子进程执行子python脚本

问题描述

我正在尝试在 for 循环中使用 Subprocess.Popen 从父脚本执行多个子 python 脚本。

父脚本中的代码如下所示:

    for tab in tabs_detail.keys():
        data = tabs_detail[tab]
        data_str= json.dumps(data)
        #print(data_str)

        subprocess.Popen
        (["Python",data['Script_Name'],data_str,client,spec_path,tab])

我只是想初步打印在我的子脚本中收到的输入参数,如下所示:

 import sys
 print('in Project settings' + sys.argv[1])
 print(sys.argv[3])

通过打印 sysargs 可以正常工作。但是当我导入用户定义的模块时,该模块具有可在我的子脚本中重用的功能,例如:

 import sys
 import userdefined.py as ud   # Imported here
 print('in Project settings' + sys.argv[1])
 print(sys.argv[3])

什么都没有打印出来,也没有返回错误。它只是返回Process finished with exit code 0

我的用户定义脚本如下所示:

  def readFromDB():
    code
  def readFromExcel():
    code
  def compareDa():
    code
  def GenerateReport():
    code

我打算在我的子脚本中调用这些函数。

由于我是 Python 的初学者,如果我遗漏了什么,请指导。先感谢您。

标签: pythonsubprocess

解决方案


推荐阅读