I already asked this exact question a year ago. My application uses Python's multiprocessing module, which works fine when run from the command line, but when I package it as an executable using Pyinstaller, the multiple processes spawn as new instances of the original rather than running the function they are supposed to run. The advice given to me last time as well as everywhere else I look is to call multiprocessing.freeze_support(
) at the beginning of my if __name__ == "__main__":
block, which I have been doing this whole time, but I am suddenly running into this issue again for some reason. What else could possibly be causing this?
Update: I have confirmed that the presence of the freeze_support() line does not affect this issue at all. Commenting it or uncommenting it gives the exact same behavior: copies of the main window are opened and sit there doing nothing. Here is the block where it is called, at the extreme end of my main Python module:
if __name__ == '__main__':
freeze_support()
# (A bunch of commented-out lines)
main()