2009-12-15 7 views
10

Sto usando py2exe per compilare un CherryPy (3.1) server utilizzando Python 2.6 (32-bit) su Windows 7 Pro (64-bit).Py2exe: sono richiesti file manifest e w9xpopen.exe quando si compila un server Web senza interfaccia GUI?

Questo server verrà eseguito senza interfaccia grafica.

Domande:

  1. Devo essere preoccupato per l'aggiunta di un file manifesto per questa applicazione, se viene eseguito senza interfaccia grafica?

  2. Devo includere w9xpopen.exe con il mio exe?

Finora, il mio numero limitato di test ha indicato che non ho bisogno di includere un file manifesto o w9xpopen.exe con il mio eseguibile in modo per farlo funzionare.

Commenti apprezzato.

Grazie, Malcolm

risposta

10

w9xpopen.exe è per Windows 95/98, per cui se non si utilizza quelli che non ne avrà bisogno.

È possibile aggiungere dll_excludes=['w9xpopen.exe'] nel file di installazione per py2exe per escluderlo.

e ovviamente non è necessario il file manifest se non si utilizza la GUI.

+0

Ho avuto l'impressione che sia richiesto anche un file manifest con Python 2.6 affinché l'exe trovi i file di runtime MSVC * .DLL. Se capisco correttamente il tuo commento, questo non è il caso perché il file manifest è richiesto solo per le applicazioni GUI - non per le applicazioni console. È corretto? Grazie! - Malcolm – Malcolm

+1

Sto costruendo un [eseguibile file singolo] (http://stackoverflow.com/a/113014/1497596), e anche se ho incorporato il dll_excludes [] '' direttiva nel mio 'setup.py', il il file 'w9xpopen.exe' è ancora stato aggiunto alla mia directory' dist'. (Riconosco però che 'w9xpopen.exe' non è necessario per eseguire il file eseguibile a file singolo generato su Windows 7.) – DavidRR

0

un file manifesto non sarà richiesta per le applicazioni di console. w9xpopen.exe non è richiesto per Win XP e versioni successive.

0
  • Un manifest non dovrebbe essere richiesto.

  • E si può escludere w9xpopen.exe (per Win XP e sopra)

Per quel che vale, utilizzando py2exe v 0.6.9 per escludere automaticamente w9xpopen ho dovuto impostare dll_excludes come opzione py2exe all'interno del mio file setup.py. Ecco un esempio per "myapp.py":

from distutils.core import setup 
import py2exe, sys, os 

sys.argv.append('py2exe') 

setup( 
    name = "...", 
    version = '1.0', 
    description = "...", 
    author = "...", 
    windows = [{'script': 'myapp.py', 
       'icon_resources': [(1, 'myapp.ico')] 
       }], 
    zipfile = None, 
    data_files=[], 
    options = { 
     'py2exe': { 
      'optimize':2, 
      'bundle_files': 2, 
      'compressed': True, 
      'excludes':[], 
      'dll_excludes':['w9xpopen.exe'] 
      } 
     } 
) 

Per applicazioni in esecuzione sans gui, si potrebbe usare console=[...] invece di windows=[...].

Problemi correlati