2012-04-19 4 views
5

मैंने विंडोज के तहत पायथन में एक छोटा सा एप्लीकेशन डिज़ाइन किया है, जो ओपनसीवी का उपयोग करता है। मैं निष्पादन योग्य बनाने की कोशिश कर रहा हूं ताकि कोई भी पाइथन/ओपनसीवी/numpy इंस्टॉल किए बिना इसे इंस्टॉल और उपयोग कर सके। । ।opencv का उपयोग कर आवेदन के लिए निष्पादन योग्य बनाते हैं?

मैंने इसके लिए py2exe का उपयोग करने का प्रयास किया। यह वास्तव में एक exe फ़ाइल बनाता है, भले ही मैं निर्माण के दौरान एक चेतावनी है:

ImportError: numpy.core.multiarray failed to import 
:

*** copy dlls *** 
copying C:\Windows\system32\MSVFW32.dll -> 
... 
The following modules appear to be missing 
['cv2.cv'] 

जब मैं कमांड लाइन का उपयोग कर exe फ़ाइल चलाने का प्रयास, मैं संदेश दिखाई

# creating executable here 
from distutils.core import setup 
import py2exe, sys, os 

sys.argv.append('py2exe') 

setup(
    options = {'py2exe': {'bundle_files': 1}}, 
    console=['facemovie.py'], 
    zipfile = None, 
) 

किसी भी विचार मैं यह कैसे हल कर सकते हैं:

मेरे setup.py फ़ाइल बहुत सरल है? यह पहली बार है जब मैं तैनाती करना चाहता हूं, और मुझे कुछ याद आ रहा है।

धन्यवाद!

उत्तर

2

धन्यवाद कार्लफिलिप, आपने मुझे ट्रैक पर रखा है।

मैं "मेरे सॉफ़्टवेयर उपयोगिता को बदलने" समाधान से बचना चाहता था, इसलिए मैं py2exe से फंस गया।

दरअसल, ओपनसीवी सही ढंग से पाया गया था, लेकिन लाइब्रेरी में एक नुकीली निर्भरता है, जिसे पता नहीं चला था।

तो मेरे कार्य समाधान अंत में है: विकल्प = { 'py2exe': { 'bundle_files': 1, 'शामिल': 'numpy'}},

अंतिम निष्पादन बहुत बड़ी है, लेकिन सुचारू रूप से चलाने ।

मैंने किसी अन्य कंप्यूटर पर कोशिश नहीं की, जिसमें सॉफ़्टवेयर स्थापित नहीं है, इसलिए आने वाली आश्चर्य हो सकती है।

आपकी मदद के लिए धन्यवाद।

+1

आपने 4 साल पहले इस प्रश्न से पूछा था। मैं उत्सुक हूँ, क्या आपने खुले सीवी के बिना किसी अन्य कंप्यूटर पर कोशिश की? मुझे यह जानकर उत्सुकता है कि यह उस मामले में काम करता है या नहीं। – Fabio

+0

उपरोक्त के समान, मुझे यह जानना अच्छा लगेगा कि यह कैसे काम करता है – Aphire

+0

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

2

this post के अनुसार, py2exe यह पता नहीं लगा रहा है कि ज़िप संग्रह के अंदर इस मॉड्यूल की आवश्यकता है। मैं सही वाक्य रचना पता नहीं है तो आप डॉक्स की जाँच करने के लिए है, लेकिन आप की कोशिश कर सकते:

python setup.py py2exe -p cv2 

या आप निम्न के setup.py बदलाव करने की कोशिश कर सकते:

options = {'py2exe': {'bundle_files': 1, 'packages': 'cv2' } }, 

और अगर आप कुछ पूरी तरह से अलग करने की कोशिश करना, bbfreeze पर एक नज़र डालें तैयार हैं:

अजगर स्क्रिप्ट से स्टैंडअलोन निष्पादनयोग्य बनाने

3

मैं PyInstaller का उपयोग करने की भी सिफारिश करता हूं। मैंने इसे अपने प्रोजेक्ट के लिए इस्तेमाल किया जो दोनों पिक्रिप्टो और मुड़कर संदर्भित था और यह एक आकर्षण की तरह काम करता था।

0

मैं एक ही समस्या में आया था। मैंने छवि फ़ाइल को उस फ़ोल्डर में स्थानांतरित करके हल किया जहां निष्पादन योग्य बनाया गया है। यह दोनों py2exe और pyinstaller के लिए काम करता है।

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