pyinstaller exe, созданный в Windows 8, не работает в Windows 7 - PullRequest
0 голосов
/ 17 октября 2018

Я сделал исполняемый файл в Windows 8. Он правильно работает в Windows 8 и 10. Проблема заключается в том, что когда я дважды щелкаю exe-файл в Windows 7, я получаю сообщение «myfile.exe перестал работать».Я проверил все, что приходит мне в голову, но проблемы все еще остаются.

На рисунке ниже показано сообщение, когда я запускаю свой исполняемый файл

1 Ответ

0 голосов
/ 17 октября 2018

Скорее всего, проблема в том, что вам не хватает DLL на компьютере, на котором не запускается исполняемый файл.

Это связано с тем, что где-то, когда-то, вы установили либо.Среда NET, среда Visual XXX или среда выполнения, содержащая определенный набор DDL для приложения, чтобы функционировать.

От вопроса в вопросах он указывает на среду выполнения Visual C ++.Это может быть установлено либо с помощью полного набора костюмов Visual C ++, либо с помощью VCruntime (обычно) .

Также важно отметить, что эти среды выполнения поставляются с собственными условиями соглашений илицензии.Вот почему они не упакованы в исполняемый файл (также, обычно) .Вы можете связать их в свой исполняемый файл, в зависимости от того, какую технику замораживания вы используете, но это не разрешено, и вам нужно разрешение для этого.

Один из способов сделать это (через pyinstaller)) выполняет:

pyinstaller -F --add-data ucrtbase.dll;. myscript.py

Снова, проверьте с лицензией, разрешено ли это.

Если вы, несмотря ни на что, решили скопировать и вставить DLL с вашим .exe, вам нужноубедитесь, что он доступен через вашу среду Windows PATH, поскольку ваш исполняемый файл будет искать библиотеки DLL (обычно system32 или другие пути) .Так что слепо копируй, потому что кто-то в интернете так сказал, не всегда работает.Вы должны узнать и понять, почему это работает и как это работает.

Вот хороший внешний источник, который довольно хорошо описывает это явление: https://docs.python -guide.org / shipping / freezing /

Все решения требуют установки MS Visual C ++ dll на целевой машине, кроме py2app.Только Pyinstaller делает исполняемый exe-файл, который связывает dll при передаче --onefile в Configure.py.

...