2014-06-08 19 views
6

Tôi có chương trình Python3 loại chương trình [.py] khi thực thi [tệp exe sau khi biên dịch] cho lỗi msvcr100.dll trong một số máy [bạn bè hoặc người thân, v.v.] mà tôi cần để tải xuống tệp dll đó [tìm kiếm google và tải xuống] và sao chép nó vào thư mục system32.Cách liên kết msvcr100.dll với chương trình cx_freeze

Do đó, sau khi googling tôi thấy rằng cx_Freeze có một tùy chọn gọi là "include_msvcr" trong build_exe mà có thể giúp tôi giải quyết vấn đề này, nhưng các tài liệu không phải là để tôi chuẩn và tôi không thể hiểu được làm thế nào để làm điều đó.

Đây là mã setup_console.py tôi:

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

tôi đã cố gắng thêm dòng include_msvcr sau base luận trong Executable nhưng nó đã đưa ra một lỗi include_msvcr not defined.

Btw. Tôi sử dụng GUI này biên dịch mã như tôi không muốn có một cửa sổ giao diện điều khiển xuất hiện miễn là chương trình đang chạy [ghét nó] bất cứ ai có thể chỉ cho tôi làm thế nào để làm điều đó [với một mã số ví dụ có lẽ]

[ Phiên bản cx_Freeze là 4.3.3, phiên bản Python là 3.5, Windows 7 SP1 x64]

+0

* Tôi cần tải xuống tập tin dll và copy nó vào thư mục system32 bản thân mình * đó không phải là làm thế nào bạn có nghĩa vụ phải thực hiện điều này. Bạn phải tải xuống Visual C++ Runtime và cài đặt nó: http://www.microsoft.com/en-us/download/details.aspx?id=5555 – stijn

+0

well @stijn ngay cả khi tôi biết điều đó, nhưng chương trình của tôi chỉ phụ thuộc vào dll đó một mình và tin tưởng tôi khi tôi nói nó chỉ cần tập tin đó. Tôi đã tải xuống, sao chép nó vào thư mục system32 và chưa bao giờ gặp phải bất kỳ vấn đề nào cho đến bây giờ –

+0

Tôi không nói phương pháp của bạn không hoạt động, tôi nói đó không phải là cách chính xác để phân phối dll. cho các ứng dụng khác hoặc ứng dụng của bạn trong tương lai. Cách đúng là cài đặt gói redist * hoặc * đặt dll vào thư mục ứng dụng của bạn nhưng * không bao giờ * trong system32. Xem http://msdn.microsoft.com/en-us/library/ms235299.aspx và http://stackoverflow.com/questions/1073509/should-i-redistribute-msvcrt-dll-with-my-application ví dụ – stijn

Trả lời

9

Cảm ơn tất cả mọi người, nhưng tôi đã tự tìm ra. Các tùy chọn include_msvcr là để được thêm vào trong file setup.py như sau:.

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

Cảm ơn, hãy làm việc cho tôi một năm sau đó. Đây là phụ thuộc duy nhất từ ​​thời gian chạy C++ mà tôi cần, đã cứu tôi khỏi việc buộc khách hàng phải cài đặt nó. – akagixxer

+0

Cảm ơn bạn, đã làm việc cho tôi. CẢM ƠN RẤT NHIỀU. – dotz

Các vấn đề liên quan