test1.pyの場合:
2つの等号が必要です:
if __name__ = '__main__':
代わりに使用してください
if __name__ == '__main__':
__name__
の値を文字列と比較するため、に値を'__main__'
割り当てないで__name__
ください。
test.pyの場合:
parm1='test'
SyntaxErrorです。リストの途中で変数に値を割り当てることはできません。
p=subprocess.Popen([sys.executable,jobname,parm1='test',parm2='test1'])
parm1
関数とparm2
関数に異なる値をフィードしたいようですtest1.test1
。そこにあり、そこにハードコーディングされているpython test1.py
ので、呼び出すことによってそれを行うことはできません。parm1=''
parm2=''
PythonからPython以外のスクリプトを実行する場合は、を使用しますsubprocess
。ただし、サブプロセスでPython関数を実行する場合は、マルチプロセッシングを使用します。
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')