• Publicidad

Crear ejecutable de scripts en Perl para Windows

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Crear ejecutable de scripts en Perl para Windows

Notapor Txemaracas » 2011-10-19 11:28 @519

Hola, me gustaría crear un ejecutable con los programas que he realizado en Perl. Quiero usar InstallShield pero tengo un problema: para poder usar los módulos que utilicé en los programas en Perl ¿me valdría copiar los módulos que tengo instalados en mi PC? ¿O debería descargarme todos y cada uno de ellos e incluirlos en el ejecutable? ¿Alguna opinión?
Txemaracas
Perlero nuevo
Perlero nuevo
 
Mensajes: 136
Registrado: 2011-04-04 10:06 @462

Publicidad

Re: Crear ejecutable de scripts en Perl para Windows

Notapor Txemaracas » 2011-10-23 13:10 @590

¿Alguien que pueda darnos alguna idea, por favor?
Txemaracas
Perlero nuevo
Perlero nuevo
 
Mensajes: 136
Registrado: 2011-04-04 10:06 @462

Re: Crear ejecutable de scripts en Perl para Windows

Notapor explorer » 2011-10-23 13:53 @620

Me parece que solo hay dos opciones, comerciales, para crear instaladores .msi.

Yo miraría en el Perl Dev Kit, de ActiveState. Pero no estoy seguro. Con PerlApp se pueden crear ejecutables a partir de un programa Perl, pero no sé si creará, específicamente, ficheros de instalación. Se supone que con PerlApp es más que suficiente para distribuir todo el programa.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Crear ejecutable de scripts en Perl para Windows

Notapor pvaldes » 2011-10-23 17:14 @759

¡Hombre!, no sabemos ni en qué sistema operativo se escribieron esos scripts. Puede parecer una tontería, pero asegúrate de que sean portables a Windows, y no usen módulos no soportados o llamadas de tipo system().
pvaldes
Perlero nuevo
Perlero nuevo
 
Mensajes: 129
Registrado: 2011-01-22 12:56 @580

Re: Crear ejecutable de scripts en Perl para Windows

Notapor Txemaracas » 2011-10-24 04:36 @233

Hol pvaldes. Los scripts fueron creados todos en Windows. De hecho el programa entero funciona correctamente desde la línea de comandos MS-DOS. Creo que últimamente hay problemas con el modulo IPC::Run puesto que yo lo instalé hace tiempo desde el repositorio de Perl en la versión 5.10 pero, probando desde otro PC, ese módulo ya no aparece ni en el repositorio ni usando cpanp puesto que da error. No sé cuál sera el problema. He creado un .exe con el programa PDK que me dijo explorer pero al ejecutarlo aparecen unas líneas de código y se cierra la pantalla MS_DOS. También me he bajado, todavía sin probar, el programa perl2exe pero en una de las recomendaciones pone que "On Windows perl.exe must be in your path.". Esto no lo entiendo muy bien. ¿Significa que el perl.exe tiene que estar en el mismo directorio que el programa?
Txemaracas
Perlero nuevo
Perlero nuevo
 
Mensajes: 136
Registrado: 2011-04-04 10:06 @462

Re: Crear ejecutable de scripts en Perl para Windows

Notapor explorer » 2011-10-24 07:20 @347

Lo de "path" se refiere a que el programa sea localizable por el sistema cuando lo escribas en el terminal.

Por ejemplo, perl2exe está en C:/bin/perl2exe/. Tú estás en C:/Desarrollo/Perl/Octubre/2011/proyecto_one/ y escribes en la terminal de comandos perl2exe. Entonces, el terminal de comandos se da cuenta que tiene que ejecutar algo, pero ese algo no se encuentra en el directorio en donde tu estás. Entonces el sistema el contenido de la variable de entorno %PATH%. En ella están los directorios donde debe mirar para encontrar al ejecutable. Entre ellos estará o no (eso es lo que quiere decir el aviso) la ruta C:/bin/perl2exe/.

Más información.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Crear ejecutable de scripts en Perl para Windows

Notapor Txemaracas » 2011-10-25 17:55 @788

Lo que no entiendo es por qué me da estos errores de que no lo encuentra cuando al ejecutar yo el programa desde la línea de comandos sí se ejecuta bien. Si no los tuviera esos módulos tampoco podría funcionarme a mi el script y sí que lo hace.
Adjuntos
error.JPG
error.JPG (40.23 KiB) Visto 2086 veces
Txemaracas
Perlero nuevo
Perlero nuevo
 
Mensajes: 136
Registrado: 2011-04-04 10:06 @462

Re: Crear ejecutable de scripts en Perl para Windows

Notapor explorer » 2011-10-25 21:36 @942

El mensaje de error se refiere a que perl2exe no encuentra esos módulos, para agregarlos al ejecutable. Intenta localizarlos siguiendo las rutas indicadas por @INC, pero no los encuentra.

Con la opción -I puedes indicar más rutas.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Crear ejecutable de scripts en Perl para Windows

Notapor Txemaracas » 2011-10-26 06:39 @319

El problema no es la ruta sino que esos tres módulos no estaban instalados.

El módulo VMS::Stdio me da error al instalarlo desde cpanp y en el repositorio de Perl 5.10.1 no, está.

El módulo Encode::ConfigLocal parece ser que no existe. He instalado el módulo Encode::Config, pero nada, sigue dando error de que no encuentra el otro.

Y el que si he podido instalar ha sido el IPC::System::Simple.

Por lo que veo no va ser posible crear el programa .exe . El .exe sí que lo crea a pesar de los errores pero lo ejecuto y se abre una pantalla de comandos MS_DOS abierta sin hacer nada pensando o no sé. :?
Txemaracas
Perlero nuevo
Perlero nuevo
 
Mensajes: 136
Registrado: 2011-04-04 10:06 @462

Re: Crear ejecutable de scripts en Perl para Windows

Notapor explorer » 2011-10-26 07:05 @337

Para Encode::ConfigLocal, he encontrado este hilo donde le pasan lo mismo que a ti. Aquí también.

Parece ser que hay que localizar la posición del fichero Encode/ConfigLocal_PM.e2x, y ejecutar enc2xs -C ConfigLocal_PM.e2x. Lo que hace la herramienta enc2xs es crear una extensión para el módulo Encode, para modificar el sistema de codificación que usará.

Con la opción -C, enc2xs crea el módulo Encode::ConfigLocal:

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. casa:/usr/lib/perl5/5.12.3/Encode # enc2xs -C ConfigLocal_PM.e2x
  2.  require Encode::Detect;
  3.  require Encode::Detect::Detector;
  4.  require Encode;
  5.  require Encode::Detect;
  6.  require Encode::Detect::Detector;
  7.  require Encode;
  8.  require Encode::Guess;
  9.  require Encode::Alias;
  10.  require Encode::EBCDIC;
  11.  require Encode::CN;
  12.  require Encode::Byte;
  13.  require Encode::Unicode;
  14.  require Encode::Config;
  15.  require Encode::Symbol;
  16.  require Encode::CJKConstants;
  17.  require Encode::JP;
  18.  require Encode::GSM0338;
  19.  require Encode::Encoder;
  20.  require Encode::TW;
  21.  require Encode::KR;
  22.  require Encode::Encoding;
  23.  require Encode::CN::HZ;
  24.  require Encode::JP::H2Z;
  25.  require Encode::JP::JIS7;
  26.  require Encode::KR::2022_KR;
  27.  require Encode::Unicode::UTF7;
  28.  require Encode::MIME::Header;
  29.  require Encode::MIME::Name;
  30.  require Encode::MIME::Header::ISO_2022_JP;
  31.  require Encode;
  32.  require Encode::Guess;
  33.  require Encode::Alias;
  34.  require Encode::EBCDIC;
  35.  require Encode::CN;
  36.  require Encode::Byte;
  37.  require Encode::Unicode;
  38.  require Encode::Config;
  39.  require Encode::Symbol;
  40.  require Encode::CJKConstants;
  41.  require Encode::JP;
  42.  require Encode::GSM0338;
  43.  require Encode::Encoder;
  44.  require Encode::TW;
  45.  require Encode::KR;
  46.  require Encode::Encoding;
  47.  require Encode::CN::HZ;
  48.  require Encode::JP::H2Z;
  49.  require Encode::JP::JIS7;
  50.  require Encode::KR::2022_KR;
  51.  require Encode::Unicode::UTF7;
  52.  require Encode::MIME::Header;
  53.  require Encode::MIME::Name;
  54.  require Encode::MIME::Header::ISO_2022_JP;
  55. $Encode::ExtModule{'Detect'} = "Encode::Detect";
  56. /usr/lib/perl5/5.12.3/Encode
  57. Generating /usr/lib/perl5/5.12.3/i586-linux-thread-multi/Encode/ConfigLocal.pm...
  58.  
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4


Y ya está generado el módulo que faltaba.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Siguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados