takluyver / pynsist

Build Windows installers for Python applications
https://pynsist.readthedocs.io/
Other
883 stars 119 forks source link

Executable did not run on fresh Windows 10 install. #195

Open wxguy opened 4 years ago

wxguy commented 4 years ago

I am not sure if the issue is related this --> https://github.com/takluyver/pynsist/issues/176. My application which I made in Windows 7 on Virtual box worked fine on my previous Windows 10, both in virtual machine and on real hardware. Today I have reinstalled Windows 10 on my Laptop and installed my application to check if all working fine. The application per say started, but exited with error message in scipy. I thought that the runtime library which I included with the application was not installed, but it was there. Upon investigation about scipy error messgae, I found that it is related to visual studio runtime library. I installed latest release from https://support.microsoft.com/en-sg/help/2977003/the-latest-supported-visual-c-downloads and tried my application again. It worked this time.

So, is the runtime library pynsist ships with the application different from the executable listed in above Microsoft web link? Does it mean that I have to warn users about the missing runtime executable?

I didn't say thank you last time. THANK YOU SO MUCH for the beautiful library. Unlike PyInstaller and other freezing libraries, pynsist just works. Read your documentation for few hours and coded for an hours to get started. No freezing, No boiling No confusion and it just works.

Great work man.

takluyver commented 4 years ago

Thanks, I'm glad it's (mostly) working for you. I made it after spending a while with cx_Freeze, and aimed to avoid a couple of pitfalls I felt the freezing approach led to.

I suspect this issue is related to #176, though I'm not 100% sure. I made an effort at some point to bundle the MS visual C runtime, but I never fully got my head around what all the DLLs are and when different ones are necessary, and I'm not totally sure whether the license conditions allow me to use them like this. So at some point, I gave up trying to make it work. I don't have any good alternative to suggest - I just can't get excited about the challenge of figuring out what DLLs are needed when, let alone how to distribute them in a trustworthy way.

wxguy commented 4 years ago

Thanks, I'm glad it's (mostly) working for you. I made it after spending a while with cx_Freeze, and aimed to avoid a couple of pitfalls I felt the freezing approach led to.

I suspect this issue is related to #176, though I'm not 100% sure. I made an effort at some point to bundle the MS visual C runtime, but I never fully got my head around what all the DLLs are and when different ones are necessary, and I'm not totally sure whether the license conditions allow me to use them like this. So at some point, I gave up trying to make it work. I don't have any good alternative to suggest - I just can't get excited about the challenge of figuring out what DLLs are needed when, let alone how to distribute them in a trustworthy way.

Ok. Just a thought that instead of copying entire library/ runtime executable within installer, you can think of at least check if the runtime library exist in the deployment system during install. Then warn the user that "MS C/ C++ library not installed in your system. You may want to consider installing it" or some other suitable message. That way user is also aware of requirement of runtime executable at some point.