我只想从这个站点运行一个示例,它是以下代码:
from multiprocessing import Process
def square(x):
for x in numbers:
print('%s squared is %s' % (x, x**2))
if __name__ == '__main__':
numbers = [43, 50, 5, 98, 34, 35]
p = Process(target=square, args=('x',))
p.start()
p.join()
print ("Done")
它说,如果你运行代码,你应该看到以下结果:
#result
Done
43 squared is 1849
50 squared is 2500
5 squared is 25
98 squared is 9604
34 squared is 1156
35 squared is 1225
但是当我运行此代码时,我只看到结果中的Done
,仅此而已。在该教程中使用了 Python 2.7,但我有 3.6,我在打印中添加了()
。
谢谢你的帮助
您的代码段存在一些问题。
- 缩进:
if __name__ == '__main__':
是平方函数的一部分 - 函数
square
应该接受参数numbers
而不是x
- 传递给进程的参数应
args=(numbers,)
一旦你解决了所有这些问题,你就会得到:
from multiprocessing import Process
def square(numbers):
for x in numbers:
print('%s squared is %s' % (x, x**2))
if __name__ == '__main__':
numbers = [43, 50, 5, 98, 34, 35]
p = Process(target=square, args=(numbers,))
p.start()
p.join()
print ("Done")
运行正常。
如果您在 Windows 上使用 IDLE,要查看输出,您需要从命令行启动 IDLE:
C:UsersMyName>python -m idlelib
如本问题所述
如果 IDLE 退出且没有消息,并且它不是从控制台启动的,请尝试从控制台 (python -m idlelib( 启动,看看是否显示消息。 例如,如果你的python文件在桌面上,你可以写
C:\Users\MyName> Desktop\python-file-name -m idlelib
PRSSwin + x
并选择command prompt
。