Я очень новичок в Python. Я только что написал программу, чтобы проверить, когда серверы перезагружались в последний раз, и отправить электронное письмо нашей команде. У нас более 30 серверов, и на каждом из них невозможно установить python. Поэтому я использовал cx_freeze для создания исполняемого файла. Ниже приведен мой файл setup.py.
from cx_Freeze import setup, Executable
setup(
name = "RebootChecker",
version = "1.0",
description = "A Script to check the last reboot time of servers",
options = {
"build_exe": {
"include_msvcr": True,
"add_to_path": True,
}
},
executables = [Executable("RebootTester.py", base = "Win32GUI")]
)
exe-файл запускает файл на моем компьютере, но при попытке его на сервере он не работает. Вылетает с ошибкой - "Программа не может запуститься, поскольку VCRUNTIME.DLL отсутствует на вашем компьютере" , даже если библиотека DLL доступна в C: \ Windows \ System32. Я обнаружил, что DLL отсутствует в папке сборки исполняемого файла python. Поэтому я вручную скопировал DLL в папку, в которой находится исполняемый файл, но я получил ошибку - Приложение не удалось правильно запустить (0xc000007b). Нажмите кнопку ОК, чтобы закрыть приложение
Я также попытался добавить файл DLL, изменив build_exe, добавив приведенные ниже строки в файл setup.py, но получил ту же ошибку, что и выше.
python_dir = os.path.dirname(sys.executable)
"include_files": [os.path.join(python_dir, "vcruntime140.dll")]
Я даже пытался восстановить приложение «Microsoft C ++ Redistributable», но безрезультатно.
Я видел в посте github, что это известная проблема в cx_freeze версии 5.0.2, где Visual Studio пакеты не добавляются даже после добавления "include_msvcr": True
, но я использую версию 6.1.
В других ответах по SO приведены только перечисленные методы в качестве решений, и они не работают для меня.
Как мне заставить это работать? Я был на этом в течение нескольких часов. Любая помощь по этому вопросу приветствуется.
Спасибо!