我想做的是同时运行两个进程。一种是等待用户的输入,另一种是计时器,在达到时间限制后关闭第一个过程。在代码的初始部分运行后,我将调用以下函数。
def CaptchaStart(member):
print(__name__)
if __name__ == '__main__':
print("SEQUENCE STARTED") #These are used to figure where we are
p1 = Process(target=Question(member))
p1.start()
p2 = Process(target=Timer)
p2.start()
p1.join()
p2.join()
else:
print("SEQUENCE FAILED") #These are used to figure where we are
我可能会犯很多错误,但是在显示if __name__ == '__main__':
的地方我用__main__
替换了cogs.captcha
,这是文件正在运行的地方。在更改main
之前,它将无法运行,而在更改main之后,它将出现以下错误:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\SoleF\AppData\Local\Programs\Python\Python35\lib\multiprocessing\spawn.py", line 106, in spawn_main
exitcode = _main(fd)
File "C:\Users\SoleF\AppData\Local\Programs\Python\Python35\lib\multiprocessing\spawn.py", line 116, in _main
self = pickle.load(from_parent)
File "C:\Users\SoleF\Documents\SENTINEL\Red-DiscordBot\cogs\captcha.py", line 7, in <module>
from __main__ import settings ImportError: cannot import name 'settings'
我对这种级别的Python还是陌生的,我对为什么出现这些错误感到困惑。
答案 0 :(得分:-1)
Question(member)
和Timer
是什么?
考虑到Process的目标必须是一个函数,并考虑不要调用它!只需将函数名称传递给目标
p1 = Process(target=Question, args=(member,))