¿Cómo puedo compilar un IronPython de la aplicación en un archivo EXE sin Visual Studios (y posiblemente con py2exe)?

Así que he intentado buscar esta respuesta antes de venir directamente aquí a preguntar. Definitivamente parece factible, a su vez, una IronPython app/conjunto de secuencias de comandos en un archivo EXE. El problema es que todos ellos parecen hablar sobre el uso de IronPython con IronPython Studios, un Python plugin para Visual Studios. Me enteré, pensé que IronPython de los Estudios era básicamente reemplazado con el Python Tools para Visual Studios (o PTVS) complemento de la herramienta. El problema con esto es que debido a la forma en que mi código está estructurado, se las arregló para bloquear el plugin, y por lo tanto Visual Studios, después de cargar el código en el IDE. Lo hará hasta la próxima actualización programada saliendo al fin de mes o a principios del próximo mes. Así que no va a ser una opción, ya que he tenido para desarrollar mi proyecto en Eclipse lugar con el plugin PyDev.

He utilizado py2exe para convertir básicos de aplicaciones Python en ejecutables antes, pero eso fue cuando yo estaba usando el CPython intérprete. Yo no sé cómo podría configurar py2exe para trabajar con IronPython. Sería posible utilizar py2exe para hacer un IronPython ejecutable? Y si mi programa utiliza extra conjuntos de C# para hacer su trabajo, ¿cómo puedo configurarlas para que así py2exe puede hacer uso de ellos y mi ejecutable puede ver para hacer referencia?

InformationsquelleAutor grg-n-sox | 2011-11-18

3 Kommentare

  1. 3

    Pyc.py es el camino a seguir como Python Tools para Visual Studio no apoyo directo de compilación. SharpDevelop ha personalizado generar acciones para Ironpython. Yo solía #Desarrollar hasta PTVS salió.

    Ver esta pregunta IronPython: EXE compilado utilizando pyc.py no se puede importar el módulo de «os» para algunos detallada de los pasos a seguir para hacer de tu EXE. Recuerde que para compilar el estándar lib módulos que se están utilizando. Si usted tiene que hacer a sus usuarios descargar e instalar IronPython a continuación, no es necesario compilar el script.

  2. 6

    IronPython buques con un compilador de línea de comandos pyc.py (en las Herramientas\carpeta de secuencias de comandos) que se puede utilizar. Otra alternativa es el uso de SharpDevelop que compilar su IronPython código a un archivo ejecutable.

    Compilado IronPython aplicación puede utilizar conjuntos de C# si están en la GAC o si se implementan junto con el ejecutable en la misma carpeta.

  3. 3

    Yo uso IronPyton 2.7.8 y ipyc.exe en lugar de Tools\Scripts\pyc.py y, además, introduce algunas diferencias, así que me estoy dejando algo de información aquí.

    1. uso /embed y /independiente opción

    Si divide su guión en más de un archivos py, a continuación, utilice /embed opción con /principal opción, se generará un único archivo exe, incluyendo todos py archivos de secuencia de comandos.
    Por ejemplo, usted tiene «MyMain.py de secuencia de comandos» y «OtherFuncs.py» entonces de la siguiente manera.

    C:\Program Files\IronPython 2.7\ipyc.exe /main:MyMain.py OtherFuncs.py /embed /plataforma:x86 /independiente /destino:winexe

    /independiente opción se utiliza para incluir básica archivos dll para IronPython bajo el C:\Program Files\IronPython 2.7\ carpeta como IronPython.dll, IronPython.Modules.dll, Microsoft.Dynamic.dll y Microsoft.Scripting.dll

    Pero tenga cuidado de que DLLs/IronPyton.SQLite.dll y DLLs/IronPtyhon.WPF.dll no están incluidos, por lo que si el uso de WPF o SQLite funcionalidad en su secuencia de comandos, debe copiar y distribuir estos archivos dll además con su archivo exe, y se debe añadir la siguiente línea en el script

    clr.AddReference("IronPython.Wpf")
    clr.AddReference("IronPython.SQLite")

    2. las bibliotecas de archivos de secuencia de comandos en virtud de la C:\Program Files\IronPython 2.7\carpeta Lib

    su secuencia de comandos de utilizar muchas de las funciones estándar apoyado por la biblioteca de archivos de secuencia de comandos en virtud de la C:\Program Files\IronPython 2.7\carpeta Lib, por lo que debe distribuir estos archivos de secuencia de comandos con el exe.

    hay dos opciones, una es solo copiar la carpeta Lib a la carpeta que tenga su archivo exe, y otra es hacer una StdLib.dll tener todos los de la biblioteca estándar de archivos de script como el siguiente comando.

    C:\Program Files\IronPython 2.7\ipyc.exe /main:StdLib.py io.py sys.py …todos los archivos de secuencia de comandos necesarios… /embed /plataforma:x86 /destino:dll

    StdLib.py es solo archivo vacío con 0 tamaño, es un hack para generar un único archivo dll. y usted debe agregar las siguientes líneas en la primera línea en el script.

    import clr
    clr.AddReference("StdLib")

    Puedo utilizar una secuencia de comandos de python hacer StdLib.dll algo como la siguiente.

    #...
    #Build StdLib.DLL
    ipath = 'C:\Program Files\IronPython 2.7'
    ipyc = ipath + '\ipyc.exe'
    # any library files you need
    gb += glob.glob(r".\Lib\*.py")
    gb += glob.glob(r".\Lib\encodings\*.py")
    # ...
    gb = [ipyc,"/main:StdLib.py","/embed","/platform:x86","/target:dll"] + gb
    subprocess.call(gb)
    print "Made StdLib"

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea