Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从另一个Python脚本中并行启动IPython_Python_Ipython_Ipython Parallel - Fatal编程技术网

从另一个Python脚本中并行启动IPython

从另一个Python脚本中并行启动IPython,python,ipython,ipython-parallel,Python,Ipython,Ipython Parallel,假设我有两个Python文件 test.py from ipyparallel import Client def hi(a): return b + (a * 2) def run(): b = 3 client = Client() view = client[:] view.push({'b':b}) results = view.map(hi, [0,1,2,3,4]) for r in results: p

假设我有两个Python文件

test.py

from ipyparallel import Client

def hi(a):
    return b + (a * 2)

def run():
    b = 3

    client = Client()
    view = client[:]

    view.push({'b':b})
    results = view.map(hi, [0,1,2,3,4])
    for r in results:
        print(r)
from test import run

if __name__ == '__main__':
    run()
driver.py

from ipyparallel import Client

def hi(a):
    return b + (a * 2)

def run():
    b = 3

    client = Client()
    view = client[:]

    view.push({'b':b})
    results = view.map(hi, [0,1,2,3,4])
    for r in results:
        print(r)
from test import run

if __name__ == '__main__':
    run()
我收到错误[0:apply]:name错误:未定义名称“b”


如果我从test.py中调用run(),这段代码就可以工作,但是,我不想这样做。我想从driver.py中调用run()。有关如何解决此问题的任何想法?

test.py
文件导入
interactive
,然后在
map
函数中使用
interactive(hi)
而不是
hi

from ipyparallel import Client
from ipyparallel.util import interactive

def hi(a):
    global b
    return b + (a * 2)

def run():
    b = 3
    client = Client()
    view = client[:]
    view.push({'b':b})
    results = view.map(interactive(hi), [0,1,2,3,4])
    for r in results:
        print(r)

if __name__ == '__main__':
    run()
可能重复的