我想用Pyinstall編譯python3程序(包括Pool),它有一些錯誤。 我的程序名稱是'ls.py',當我用Pyintall編譯程序時,它生成一個名爲'ls.exe'的程序。我運行它,打印什麼。 我的代碼是在這裏:用Pyinstall錯誤編譯python3程序(包括Pool)
from multiprocessing import Pool
def f(x):
print(x*x)
if __name__ == '__main__':
p = Pool(2)
p.map(f,[1,2,3,4])
當我更改代碼:
#from multiprocessing import Pool
def f(x):
print(x*x)
if __name__ == '__main__':
for i in range(1,5):
f(i)
而且編譯Pyinstall程序,它運行OK! 所以,我認爲這個問題是由
'from multiprocessing import Pool'
引起那麼,請幫我解決這個問題,謝謝
的Python 3.4的版本,Pyinstall是PyInstaller-3.2.1-py3.4 .egg
我測試2 melthold,它在Python 2或3中都運行正常!問題是:用Pyinstall編譯它;一種方式可以運行,另一種方式使用池,這是錯誤的 –
是的,OP在池作業中有打印語句。如果它更改爲返回,則代碼運行良好。 –
也,我添加freeze_support(),exe程序什麼都不返回,幫助 –