2014-06-08 14 views
6

Mam program typu Python3 konsoli [.py], który po uruchomieniu [plik exe po kompilacji] daje brakujący błąd msvcr100.dll w niektórych komputerach [przyjaciołach lub krewnych itp.], Do którego potrzebuję pobrać ten plik DLL [google search and download it] i skopiuj go do folderu system32.Jak powiązać msvcr100.dll z programem cx_freeze

Stąd po googlowania znalazłem że cx_Freeze posiada opcję zwaną "include_msvcr" w build_exe które mogłyby mi pomóc rozwiązać ten problem, ale dokumentacja nie było moim standardowej i nie mogę zrozumieć, jak to zrobić.

Oto mój kod 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)]) 

Próbowałem dodając linię include_msvcr po base argument Executable ale dał błąd include_msvcr not defined.

Przy okazji. Używam tego GUI kod kompilacji jak nie chcę się okno konsoli pojawiają się tak długo, jak program działa [hate it] Może ktoś mi pokazać jak to zrobić [z kodem przykład być może]

[ Wersja cx_Freeze to 4.3.3, wersja Pythona to 3.5, Windows 7 SP1 x64]

+0

* muszę pobrać ten plik dll i skopiować go do folderu system32 się *, że nie jest to w jaki sposób można to zrobić. Musisz pobrać środowisko wykonawcze Visual C++ i zainstalować je: http://www.microsoft.com/en-us/download/details.aspx?id=5555 – stijn

+0

dobrze @stijn nawet ja to wiem, ale mój program zależy tylko od tylko w tej dll i uwierz mi, kiedy mówię, że potrzebuje tylko tego pliku. Pobrałem to, skopiowałem do folderu system32 i nigdy nie miałem do czynienia z żadnymi problemami aż do teraz –

+0

Nie mówię, że twoja metoda nie działa, mówię, że to nie jest poprawny sposób dystrybucji dll, ponieważ może to spowodować problemy dla innych aplikacji lub aplikacji w przyszłości. Prawidłowy sposób polega na zainstalowaniu pakietu redyst * lub * umieszczeniu biblioteki dll w katalogu aplikacji, ale * nigdy * w systemie32. Zobacz na przykład http://msdn.microsoft.com/en-us/library/ms235299.aspx i http://stackoverflow.com/questions/1073509/should-i-redredistribute-msvcrt-dll-with-mapplication na przykład – stijn

Odpowiedz

9

Dzięki za pomoc wszystkim, ale sam to wymyśliłem. Opcja include_msvcr ma być dodany w pliku setup.py w następujący sposób:.

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)]) 
+0

Dzięki, działa dla mnie rok później. To była jedyna zależność od wymaganego środowiska wykonawczego C++, która uratowała mnie przed zmuszaniem klientów do instalacji. – akagixxer

+0

Dziękuję, pracował dla mnie też. WIELKIE DZIĘKI. – dotz

Powiązane problemy