2014-06-08 12 views
6

मेरे पास एक कंसोल प्रकार पायथन 3 प्रोग्राम है [.py] जो निष्पादित होने पर [exe फ़ाइल को संकलित करने के बाद] कुछ मशीनों [दोस्तों या रिश्तेदार इत्यादि] में msvcr100.dll त्रुटि गुम हो जाता है जिसकी मुझे आवश्यकता है उस डीएलएल फ़ाइल को डाउनलोड करने के लिए [google search और इसे डाउनलोड करें] और इसे system32 फ़ोल्डर में कॉपी करें।msvcr100.dll को cx_freeze प्रोग्राम से कैसे लिंक करें

इसलिए, googling के बाद मैंने पाया कि cx_Freezebuild_exe जो मुझे इस समस्या को हल मदद कर सकता है में "include_msvcr" नामक विकल्प होता है लेकिन प्रलेखन मेरी मानक नहीं था और मैं ऐसा करने के लिए कैसे नहीं समझ सके।

यहाँ मेरी 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)]) 

मैं Executable में base बहस के बाद include_msvcr लाइन जोड़ने की कोशिश की लेकिन यह एक include_msvcr not defined त्रुटि दे दी है।

बीटीडब्ल्यू। मैं इस जीयूआई कोड संकलन का उपयोग के रूप में मैं के रूप में कार्यक्रम [यह नफरत] चल रहा है किसी को भी मुझे दिखा सकते हैं इसे कैसे करना

[एक उदाहरण कोड शायद के साथ] [एक कंसोल विंडो रूप में लंबे समय प्रकट करने के लिए नहीं करना चाहते हैं cx_Freeze संस्करण 4.3.3 है, पायथन संस्करण 3.5 है, विंडोज 7 एसपी 1 x64]

+0

* मैं और कि dll फ़ाइल को डाउनलोड करने की जरूरत है इसे कॉपी System32 करने के लिए अपने आप को फ़ोल्डर * कि नहीं है कि कैसे आप ऐसा करने वाले हैं। आपको विजुअल सी ++ रनटाइम डाउनलोड करना होगा और इसे इंस्टॉल करना होगा: http://www.microsoft.com/en-us/download/details.aspx?id=5555 – stijn

+0

अच्छी तरह से @stijn मुझे यह भी पता है, लेकिन मेरा प्रोग्राम बस इस पर निर्भर करता है वह अकेला है और मुझे बेवकूफ़ बनाते हैं जब मैं कहता हूं कि केवल उस फ़ाइल की आवश्यकता है। मैंने इसे डाउनलोड किया, इसे system32 फ़ोल्डर में कॉपी किया और अब तक कोई समस्या नहीं आई है –

+0

मैं यह नहीं कह रहा हूं कि आपकी विधि काम नहीं करती है, मैं कह रहा हूं कि यह डीएल वितरित करने का सही तरीका नहीं है क्योंकि इससे समस्याएं पैदा हो सकती हैं भविष्य में अन्य अनुप्रयोगों या आपके आवेदन के लिए। सही तरीका है या तो रेडिस्ट पैकेज को स्थापित करना * या * अपनी एप्लिकेशन निर्देशिका में डीएल डालें लेकिन * कभी नहीं * system32 में। Http://msdn.microsoft.com/en-us/library/ms235299.aspx और http://stackoverflow.com/questions/1073509/should-i-redistribute-msvcrt-dll-with-my- एप्लिकेशन उदाहरण के लिए देखें – stijn

उत्तर

9

सभी की मदद के लिए धन्यवाद लेकिन मैंने इसे स्वयं समझ लिया। 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)]) 
+0

धन्यवाद, एक साल बाद मेरे लिए काम करता है। यह आवश्यक सी ++ रनटाइम की एकमात्र निर्भरता थी, जिसने मुझे ग्राहकों को स्थापित करने के लिए मजबूर करने से बचाया। – akagixxer

+0

धन्यवाद, मेरे लिए भी काम किया। बहुत बहुत धन्यवाद। – dotz

संबंधित मुद्दे