Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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文件?_Python_Multiprocessing - Fatal编程技术网

如何同时运行多个python文件?

如何同时运行多个python文件?,python,multiprocessing,Python,Multiprocessing,如何同时运行多个python文件?有3个文件:bot_1.py、bot_2.py、bot_3.py。我想同时运行它们。我附上了密码。我应该在worker函数中写什么才能使这个脚本工作? 我将感谢任何帮助 导入多处理 导入子流程 def workerfile: 您的子流程代码 subprocess.Popen['screen','./bot_1.py'] subprocess.Popen['screen','./bot_2.py'] subprocess.Popen['screen','./bo

如何同时运行多个python文件?有3个文件:bot_1.py、bot_2.py、bot_3.py。我想同时运行它们。我附上了密码。我应该在worker函数中写什么才能使这个脚本工作? 我将感谢任何帮助

导入多处理 导入子流程 def workerfile: 您的子流程代码 subprocess.Popen['screen','./bot_1.py'] subprocess.Popen['screen','./bot_2.py'] subprocess.Popen['screen','./bot_3.py'] 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': files=[bot_1.py、bot_2.py、bot_3.py] 对于文件中的i: p=多处理。Processtarget=workeri
p、 start从文档中,在多处理中,通过创建流程对象,然后调用其start方法生成流程

因此,我想最好的方法是:

bots = ['bot1','bot2','bot3']
modules = map(__import__,bots)

import multiprocessing,subprocess

multiprocessing.Process(target=modules)
在bot1、2、3中,我使用了一个简单的打印bot1、bot2和bot3,输出如预期:

user@machine:~$ python mainscript.py 
bot1
bot2
bot3

从文档中,在多处理中,通过创建流程对象,然后调用其start方法生成流程

因此,我想最好的方法是:

bots = ['bot1','bot2','bot3']
modules = map(__import__,bots)

import multiprocessing,subprocess

multiprocessing.Process(target=modules)
在bot1、2、3中,我使用了一个简单的打印bot1、bot2和bot3,输出如预期:

user@machine:~$ python mainscript.py 
bot1
bot2
bot3

假设您的bot文件在命令行上运行时执行某些操作,我们可以通过将它们导入python进程而不是shell来加载和执行它们。由于每个python文件都定义了一个包,我们可以按如下方式执行此操作:

import bot_1, bot_2, bot_3
然而,这将一个接一个地运行它们,并且还阻止您两次运行同一个。为了让它们立即运行,我们可以按照您的建议使用多处理:

import multiprocessing

for bot in ('bot_1', 'bot_2', 'bot_3'):
    p = multiprocessing.Process(target=lambda: __import__(bot))
    p.start()
进程需要一个函数来运行,因此我们使用匿名lambda为其指定一个函数,然后动态导入该名称


此处未显示,但只要您不将模块导入父进程,子进程将被迫加载它,这意味着您可以根据需要在单独的进程中反复运行同一个模块。

假设您的bot文件在命令行上运行时执行某些操作,我们可以通过将它们导入python进程而不是shell来加载和执行它们。由于每个python文件都定义了一个包,我们可以按如下方式执行此操作:

import bot_1, bot_2, bot_3
然而,这将一个接一个地运行它们,并且还阻止您两次运行同一个。为了让它们立即运行,我们可以按照您的建议使用多处理:

import multiprocessing

for bot in ('bot_1', 'bot_2', 'bot_3'):
    p = multiprocessing.Process(target=lambda: __import__(bot))
    p.start()
进程需要一个函数来运行,因此我们使用匿名lambda为其指定一个函数,然后动态导入该名称

此处未显示,但只要您不将模块导入父进程,子进程将被迫加载它,这意味着您可以在单独的进程中反复运行相同的模块(如果需要)