Как связать msvcr100.dll с программой cx_freeze

У меня есть программа Python3 консольного типа [.py], которая при запуске [exe-файл после компиляции] выдает ошибку msvcr100.dll на некоторых машинах [друзья или родственники и т. Д.], На которую мне нужно загрузить этот файл dll [поиск в Google и его загрузка] и сам скопирую в папку system32.

Следовательно, после поиска в Google я обнаружил, что cx_Freeze имеет параметр "include_msvcr" в build_exe, который может помочь мне решить эту проблему, но документация не соответствует моему стандарту, и я не мог понять, как это сделать.

Вот мой setup_console.py код:

import sys
from cx_Freeze import setup, Executable

base=None
if sys.platform=='win32':
    base="Win32GUI"

setup( name="Rescue Unit",
       version="2.0",
       executables=[Executable("resunitv2.py",base)])

Я попытался добавить строку include_msvcr после аргумента base в Executable, но это дало include_msvcr not defined ошибку.

Кстати. Я использую этот код компиляции графического интерфейса пользователя, так как я не хочу, чтобы окно консоли появлялось, пока программа работает [ненавижу это] Кто-нибудь может показать мне, как это сделать [возможно, с примером кода]

[cx_Freeze версия 4.3.3, версия Python 3.5, Windows 7 SP1 x64]


person Surya Teja Karra    schedule 08.06.2014    source источник
comment
Мне нужно загрузить этот файл dll и самому скопировать его в папку system32. Это не то, как вы должны это делать. Вам необходимо загрузить среду выполнения Visual C ++ и установить ее: microsoft. ru / en-us / download / details.aspx? id = 5555   -  person stijn    schedule 08.06.2014
comment
ну @stijn, даже я знаю это, но моя программа зависит только от этой dll, и поверьте мне, когда я говорю, что ей нужен только этот файл. Скачал, скопировал в папку system32 и до сих пор ни разу не сталкивался с проблемами   -  person Surya Teja Karra    schedule 08.06.2014
comment
Я не говорю, что ваш метод не работает, я говорю, что это неправильный способ распространения dll, поскольку он может вызвать проблемы для других приложений или вашего приложения в будущем. Правильный способ - либо установить пакет redist , либо поместить dll в каталог вашего приложения, но никогда в system32. См. msdn.microsoft.com/en-us/library/ms235299.aspx и stackoverflow .com / questions / 1073509 / например.   -  person stijn    schedule 08.06.2014


Ответы (1)


Спасибо за помощь всем, но я понял это сам. Параметр include_msvcr должен быть добавлен в файл setup.py следующим образом:

import sys

from cx_Freeze import setup, Executable

build_exe_options = {
"include_msvcr": True   #skip error msvcr100.dll missing
}

base=None

if sys.platform=='win32':
base="WIN32GUI"


setup(  name = "AppName",
        version = "1.0",
        description = "blah blah",
        options = {"build_exe": build_exe_options},
        executables = [Executable("appname.py", base=base)])
person Surya Teja Karra    schedule 09.06.2014
comment
Спасибо, у меня работает год спустя. Это была единственная зависимость от среды выполнения C ++, в которой я нуждался, и избавил меня от необходимости заставлять клиентов устанавливать и ее. - person akagixxer; 11.05.2015