Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    628

    [PYTHON] Py2EXE -> programma composto da più file

    Ragazzi ho un programma composto da più file .py

    Ho una directory chiamata /librerie/ come faccio ad includere tutti i file presenti in quella dir? (che vengono utilizzati dal programma)

    grazie
    Software gratuito per gestire le tue newsletter: Mercurio

  2. #2
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Se tu li importi nel tuo file principale basta compilare solo quello.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  3. #3
    Esatto, se poi vuoi creare più file exe devi specificarlo nell'argomento console/windows.
    Prendi esempio da questo setup.py:

    codice:
    # Win32Compile.py
    # soicmp project v0.5
    
    import os
    import sys
    import py2exe
    import glob
    from distutils.core import setup
    
    # go to root directory (cd ..)
    root = os.path.split(os.getcwd())[0]
    sys.path.append(root)
    os.chdir(root)
    
    __pname__= "soicmp"
    __ver__ = "v0.5"
    
    platforms = {
        'nt': 'win32',
        'ce': 'win32',
        }
    type = platforms.get(os.name)
    if type != 'win32':
        print "This script is only for use on Win32."
        sys.exit()
    
    # --------------------------------------------------------------
    
    
          # console executable (== server.py)
    setup(console=[
            {"script": "server.py",
             "dest_base": "server",
             "icon_resources": [(1, "soicmp.ico")]},
    
          # console executable (== client.py)        
            {"script": "client.py",
             "dest_base": "client",
             "icon_resources": [(1, "soicmp.ico")]}],
    
          # background executable (== serverw.pyw)
          windows=[
              {"script": "serverw.pyw",
               "dest_base": "serverw",
               "icon_resources": [(1, "soicmp.ico")]
               }
              ],
    
          # shared library name (default: 'library.zip')
          zipfile="library.zip",
    
          # opts
          options={
              "py2exe": {
                  "dist_dir": "[w32-bin]-%s_%s" %(__pname__, __ver__),
                  "optimize": 2,
                  "ignores": None,
                  "includes": ["encodings", "encodings.*"]
                  }
              },
    
          # files
          data_files=[
              ("",["LICENSE.TXT",               
                   "TODO.TXT",
                   "HISTORY.TXT",
                   "README.TXT"]),
              ("doc", glob.glob("doc\\*txt")),
              ("doc", glob.glob("doc\\*html")),
              ("doc\\soicmp_files\\", glob.glob("doc\\soicmp_files\\*")),
              ],
          )
    
    # delete "build" directory generated by py2exe
    try:
        os.system("rmdir /S /Q build")
    except:
        pass
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    628
    allora mi spiego meglio la gerarchia delle cartelle della mia applicazione è fatta cosi

    /main.py
    /app.py
    /check.py
    /librerie/__init__
    /librerie/controllo.py
    /librerie/connessione.py
    /librerie/test.py


    ora il file di avvio è /main.py che include /librerie/connessione.py e /librerie/controllo.py ma all'interno del programma ci sono altri file...come /app.py che include /librerie/test.py quindi il file "principale" non include tutte le librerie...
    come potrei fare?

    P.S. Ho provato a fare tutto dal primo file ma mi da errore, mi dice che non trova il modulo...

    grazie mille
    Software gratuito per gestire le tue newsletter: Mercurio

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    628
    ragazzi ho trovato l'inghippo...
    se dentro uno script metto

    from librerie import *


    l'.exe mi darà sempre errore e dira che il modulo non esiste richiamato non esiste

    se invece faccio

    from librerie import controllo

    lo script funziona perfettamente e riconosce da solo le dipendenze, proprio come avete detto voi.....il problema stà quindi in quel asterisco....non c'è un modo per risolvere questo problemino??? ora i file sono 3 e quindi tutto sommato non c'è problema nel fare l'import ma se il programma diventa grande???

    Grazie
    Software gratuito per gestire le tue newsletter: Mercurio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.