我只是想从this site运行一个示例,它是以下代码:
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并且我在打印中添加了()
。
感谢您的帮助
答案 0 :(得分:2)
您的代码段存在一些问题。
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:\Users\MyName>python -m idlelib
答案 1 :(得分:0)
如果IDLE退出但没有消息,并且未从控制台启动,请尝试从控制台(python -m idlelib)启动并查看是否显示消息。 例如,如果您的python文件在桌面中,您可以编写
C:\用户\ MYNAME> Desktop \ python-file-name -m idlelib
prss win + x
并选择command prompt
。