2009-04-15 16 views
9

Encontré http://www.iseriespython.com/, que es una versión de Python para el iSeries que aparentemente incluye algunas clases de acceso a datos específicas del sistema. Tengo muchas ganas de probar esto, pero tendré que obtener la aprobación en el trabajo para hacerlo. Mis preguntas son:¿Alguien ha intentado utilizar el puerto iSeries Python?

¿Funciona bien el puerto o hay límites para lo que el intérprete puede manejar en comparación con las implementaciones estándar de Python?

¿La capa de acceso a la base de datos de iSeries funciona bien, creando objetos utilizables a partir de definiciones de tablas?

+1

Esta es una pregunta pobre. Sea más específico de por qué está preguntando, y también sería útil incluir una oración que explique de qué se trata. -1 hasta que se actualice –

+0

Lo suficientemente justo - reescrito –

Respuesta

7

Por lo que he visto hasta ahora, funciona bastante bien. Tenga en cuenta que estoy usando iSeries Python 2.3.3. El hecho de que las cadenas sean EBCDIC nativas puede ser un problema; Definitivamente es una de las razones por las que muchos paquetes de terceros no funcionarán como están, incluso si son puros de Python. (En algunos casos, pueden modificarse y aplicarse para hacer un uso juicioso de la codificación y la decodificación). Supuestamente, 2.5 usa ASCII de forma nativa, lo que en principio mejoraría la compatibilidad, pero no tengo forma de probar esto porque estoy en un versión anterior de OS/400.

En parte debido a EBCDIC y en parte porque OS/400 y el sistema de archivos QSYS no son parecidos a Unix ni a Windows, hay algunas piezas de la biblioteca estándar que no se implementan o se implementan imperfectamente. Lo mal que esto te afectará depende de lo que estás tratando de hacer.

En el lado positivo, las características específicas de iSeries funcionan bastante bien. Es muy fácil trabajar con archivos físicos y también con archivos de transmisión. Llamar a los programas CL o RPG desde Python es bastante sencillo. En general, considero que iSeries Python es altamente utilizable y muy útil.

Actualización: Se ha trabajado mucho en iSeries Python desde que se hizo esta pregunta. Version 2.7 ya está disponible, lo que significa que está actualizado en lo que respecta a las versiones 2.x. Algunos participantes de forum están razonablemente activos y brindan un soporte increíble. Uno de ellos ha logrado que Django trabaje en el i. Como era de esperar, el cambio a cadenas ASCII nativas resuelve muchos de los problemas de EBCDIC y aumenta enormemente la compatibilidad con paquetes de terceros. Recomiendo encarecidamente iSeries Python 2.7 para cualquiera en V5R3 o posterior. (Todavía recomiendo iSeries Python 2.3.3 para aquellos que están en versiones anteriores del sistema operativo.)

0

Otro lugar buscar está en la lista de correo MIDRANGE-L o buscar en los archivos para la lista en midrange.com. Sé que han hablado de esto hace un tiempo.

3

Obtuve permiso para instalar iSeries Python en una caja hace aproximadamente 3 años. Descubrí que funcionaba como se anunciaba. Me puse en contacto con el desarrollador y él fue muy bueno respondiendo preguntas. Sin embargo, antes de que pudiera pensar en usarlo en producción, tuve que acercarme al desarrollador con respecto a un contrato de soporte. Ese realmente no es su concierto, entonces él dijo que no y descartamos la idea. La principal limitación que encontré es que hay varias versiones detrás de Python en otras plataformas.

También he tenido una muy buena experiencia con Jython en el iSeries. Java es completamente compatible con iSeries. Teóricamente, todo lo que puede hacer en RPG en el iSeries, puede hacerlo en Java, lo que significa que puede hacerlo en Jython. Estaba enviando un correo electrónico desde un AS/400 (nombre antiguo para iSeries) a través de JPython (nombre anterior para Jython) y smtplib.py en 1999 o 2000.

+0

Especialmente modificado para señalar a Jython. No pensé en eso. –

4

iSeriesPython funciona muy bien. Lo estamos utilizando desde 2005 (o antes) en nuestros entornos de desarrollo y producción como lenguaje de utilidad, para generar código fuente COBOL, generar interfaces PCML, enviar SMS, validar/corregir algunos datos ... etc. Con iSeriesPython puede acceder a la base de datos de iSeries de 2 maneras: utilizando File400 y/o el módulo db2. Puede ejecutar comandos OS/400 y puede trabajar con los miembros QSYS.LIB y los archivos continuos IFS. En mi humilde opinión, iSeries Python es una herramienta muy poderosa, más que REXX incluida con iSeries. ¡Pruébalo!

Cuestiones relacionadas