2009-04-15 12 views
9

Ho trovato http://www.iseriespython.com/, che è una versione di Python per iSeries che apparentemente include alcune classi di accesso ai dati specifiche del sistema. Sono ansioso di provarlo, ma dovrò ottenere l'approvazione al lavoro per farlo. Le mie domande sono:Qualcuno ha provato a utilizzare la porta iSeries Python?

La porta funziona bene o ci sono limiti a ciò che l'interprete può gestire rispetto alle implementazioni standard di Python?

Il livello di accesso al database iSeries funziona correttamente, creando oggetti utilizzabili dalle definizioni di tabella?

+1

Questa è una domanda povera. Per favore, sii più specifico del perché lo stai chiedendo, e sarebbe anche utile includere una frase che spieghi di cosa si tratta. -1 fino a quando questo non viene aggiornato –

+0

Abbastanza corretto - riscritto –

risposta

7

Da quello che ho visto finora, funziona piuttosto bene. Nota che sto usando iSeries Python 2.3.3. Il fatto che le stringhe siano nativamente EBCDIC può essere un problema; è sicuramente uno dei motivi per cui molti pacchetti di terze parti non funzioneranno così come sono, anche se sono Python puri. (In alcuni casi possono essere modificati e massaggiati per lavorare con un uso giudizioso della codifica e della decodifica.) Supposedly 2.5 usa ASCII in modo nativo, il che in teoria dovrebbe migliorare la compatibilità, ma non ho modo di testarlo perché sono troppo vecchia versione di OS/400.

In parte a causa di EBCDIC e in parte perché OS/400 e il file system QSYS non sono né simili a Unix né a Windows, ci sono alcuni elementi della libreria standard che non sono implementati o sono implementati in modo imperfetto. Quanto ciò possa influire negativamente su di te dipende da cosa stai cercando di fare.

Sul lato positivo, le funzionalità specifiche di iSeries funzionano abbastanza bene. È molto facile lavorare con file fisici e file di streaming. Chiamare i programmi CL o RPG da Python è abbastanza indolore. A conti fatti, trovo che iSeries Python sia altamente utilizzabile e molto utile.

Aggiornamento: Un sacco di lavoro è andato in iSeries Python da quando è stata posta questa domanda. Version 2.7 è ora disponibile, il che significa che è aggiornato fino a 2.x versioni andare. Alcuni partecipanti allo forum sono ragionevolmente attivi e forniscono un supporto straordinario. Uno di loro ha messo Django al lavoro sulla i. Come previsto, il passaggio alle stringhe ASCII native risolve molti problemi EBCDIC e aumenta notevolmente la compatibilità con i pacchetti di terze parti. Raccomando entusiasticamente iSeries Python 2.7 per chiunque su V5R3 o successivo. (Raccomando comunque iSeries Python 2.3.3 per coloro che si trovano su versioni precedenti del sistema operativo.)

0

Un altro posto per cercare è sulla mailing list MIDRANGE-L o cercare gli archivi per l'elenco midrange.com. So che ne hanno parlato un po 'di tempo fa.

3

Ho ottenuto il permesso di installare iSeries Python su una scatola circa 3 anni fa. Ho scoperto che funzionava più o meno come pubblicizzato. Ho contattato lo sviluppatore e lui è stato molto bravo nel rispondere alle domande. Tuttavia, prima che potessi pensare di usarlo in produzione, ho dovuto contattare lo sviluppatore per un contratto di supporto. Questo in realtà non è il suo concerto, così ha detto di no e abbiamo scartato l'idea. La principale limitazione che ho trovato è che ci sono diverse versioni di Python su altre piattaforme.

Ho anche avuto un'esperienza molto buona con Jython su iSeries. Java è completamente supportato su iSeries. Teoricamente, tutto ciò che puoi fare in RPG su iSeries, puoi farlo in Java, il che significa che puoi farlo in Jython. Stavo inviando email da un AS/400 (vecchio nome per iSeries) tramite JPython (vecchio nome per Jython) e smtplib.py nel 1999 o 2000.

+0

Soprattutto con upvoted per indicare Jython. Non ci ho pensato. –

4

iSeriesPython sta funzionando molto bene. Lo usiamo dal 2005 (o prima) nei nostri ambienti di sviluppo e produzione come linguaggio di utilità, per generare codice sorgente COBOL, generare interfacce PCML, inviare SMS, convalidare/correggere alcuni dati ... ecc. con iSeriesPython è possibile accedere al database iSeries in 2 modi: utilizzando il modulo File400 e/o db2. È possibile eseguire comandi OS/400 ed è possibile lavorare con membri QSYS.LIB e file di flusso IFS. IMHO, iSeries Python è uno strumento molto potente, migliore di REXX incluso in iSeries. Provalo!

Problemi correlati