2012-04-18 12 views
5

शामिल होने पर भी मॉड्यूल को शामिल करने में विफल रहता है, मैं अपने ऐप (स्पाइ पायथन इंजन, www.spye.dk) का स्थिर स्व-निहित वितरण बनाने के लिए सीएक्स-फ्रीज का उपयोग करने की कोशिश कर रहा हूं, हालांकि, जब मैं सीएक्स-फ्रीज चलाता हूं , यह कहते हैं:सीएक्स-फ्रीज विशेष रूप से

Missing modules: 
? _md5 imported from hashlib 
? _scproxy imported from urllib 
? _sha imported from hashlib 
? _sha256 imported from hashlib 
? _sha512 imported from hashlib 
? _subprocess imported from subprocess 
? configparser imported from apport.fileutils 
? usercustomize imported from site 

यह मेरा setup.py है:

#!/usr/bin/env python 
from cx_Freeze import setup, Executable 

includes = ["hashlib", "urllib", "subprocess", "fileutils", "site"] 
includes += ["BaseHTTPServer", "cgi", "cgitb", "fcntl", "getopt", "httplib", "inspect", "json", "math", "operator", "os", "os,", "psycopg2", "re", "smtplib", "socket", "SocketServer", "spye", "spye.config", "spye.config.file", "spye.config.merge", "spye.config.section", "spye.editor", "spye.framework", "spye.frontend", "spye.frontend.cgi", "spye.frontend.http", "spye.input", "spye.output", "spye.output.console", "spye.output.stdout", "spye.pluginsystem", "spye.presentation", "spye.util.html", "spye.util.rpc", "ssl", "stat,", "struct", "subprocess", "sys", "termios", "time", "traceback", "tty", "urllib2", "urlparse", "uuid"] 

includefiles=[] 
excludes = [] 
packages = [] 
target = Executable(
    # what to build 
    script = "spye-exe", 
    initScript = None, 
    #base = 'Win32GUI', 
    targetDir = r"dist", 
    targetName = "spye.exe", 
    compress = True, 
    copyDependentFiles = True, 
    appendScriptToExe = False, 
    appendScriptToLibrary = False, 
    icon = None 
    ) 

setup(
    version = "0.1", 
    description = "No Description", 
    author = "No Author", 
    name = "cx_Freeze Sample File", 

    options = {"build_exe": {"includes": includes, 
       "excludes": excludes, 
       "packages": packages 
       #"path": path 
       } 
      }, 

    executables = [target] 
    ) 

कृपया ध्यान दें सूची में शामिल हैं में है कि मैं स्पष्ट रूप से याद आ रही मॉड्यूल निर्दिष्ट करें।

मैं इसे कैसे ठीक करूं?

उत्तर

-1

मुझे लगता है, आप सूचियों पर बस += नहीं कर सकते हैं। एक मैं केवल था - (@ThomasK धन्यवाद)

+= ठीक काम करता है: -

आप शायद सूची विधि extend का उपयोग करना चाहिए अन्यथा मूल सूची संशोधित नहीं किया जाएगा:

includes.extend(["BaseHTTPServer", "<rest of your modules>"]) 

संपादित करें ऑनलाइन पायथन दुभाषिया जो सही ढंग से काम नहीं करता है। (मेरे पास विंडोज़ इंस्टॉलेशन पर कोई पायथन इंस्टॉल नहीं है इसलिए मुझे ऑनलाइन जांचना पड़ा)।

+0

ठीक है, मैं अब कि तय कर दी है, लेकिन मैं अभी भी लापता मॉड्यूल की एक ही सूची मिलता है। कैसे ठीक करना है? – ervingsb

+0

मैं यहाँ मेरी setup.py अद्यतन है: http://paste.adora.dk/P2357.txt, और से उत्पादन "अजगर setup.py निर्माण | ग्रेप -A12 मिसिंग यू" यहाँ है: http: //paste.adora .dk/P2356.txt – ervingsb

+0

मैंने अभी आपकी समस्या को गुमराह किया है और ऐसा लगता है कि यह [libcrypto] से संबंधित है (http://www.mail-archive.com/[email protected]/msg00664.html) (हालांकि कोई समाधान नहीं था) - शायद cx_freeze गैर-पायथन निर्भरताओं को संभाल नहीं सकता है? – BergmannF

0

गुम मॉड्यूल आवश्यक रूप से एक समस्या नहीं है: कई मॉड्यूल विभिन्न प्लेटफॉर्म या पायथन के विभिन्न संस्करणों को समायोजित करने के लिए विभिन्न आयातों को आजमाते हैं।

if mswindows: 
    ... 
    import _subprocess 

cx_Freeze, इस बारे में पता नहीं है, तो यह पर लिनक्स/मैक _subprocess खोजने के लिए और साथ ही कोशिश करेंगे, और लापता के रूप में रिपोर्ट: subprocess में, उदाहरण के लिए, आप इस कोड को पा सकते हैं। उन्हें includes में निर्दिष्ट करना कुछ भी नहीं बदलेगा, क्योंकि यह उन्हें शामिल करने का प्रयास कर रहा है, लेकिन उन्हें ढूंढने में असमर्थ है।

इसे किसी भी फाइल को बनाना चाहिए, इसलिए इसे चलाने का प्रयास करें और यह काम कर रहा है या नहीं।

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