在 test1.py 中:
您需要两个等号:
if __name__ = '__main__':
改为使用
if __name__ == '__main__':
因为您想将 的值__name__与字符串进行比较'__main__',所以不要将值分配给__name__.
在 test.py 中:
parm1='test'是一个语法错误。您不能为列表中间的变量赋值:
p=subprocess.Popen([sys.executable,jobname,parm1='test',parm2='test1'])
看来您想为函数提供不同parm1的值。你不能通过调用来做到这一点,因为那里是硬编码的。parm2test1.test1python test1.pyparm1=''parm2=''
如果要从 Python 运行非 Python 脚本,请使用subprocess. 但是当您想在子进程中运行 Python 函数时,请使用multiprocessing:
import multiprocessing as mp
import test1
def test(function, *args, **kwargs):
    print(function.__name__)
    proc = mp.Process(target = function, args = args, kwargs = kwargs)
    proc.start()
    proc.join()  # wait for proc to end
if __name__ == '__main__':
    test(test1.test1, parm1 = 'test', parm2 = 'test1')