我找到http://www.iseriespython.com/,它是iSeries的Python版本,显然包括一些特定于系统的数据访问类。我很想尝试这一点,但必须得到批准才能这样做。我的问题是:
与标准Python实现相比,端口是否运行良好,或解释器可以处理的内容是否有限制?
iSeries数据库访问层是否运行良好,从表定义创建可用对象?
答案 0 :(得分:7)
从目前为止我所看到的,它的效果非常好。请注意,我正在使用iSeries Python 2.3.3。字符串本身就是EBCDIC的事实可能是一个问题;这绝对是许多第三方软件包无法正常工作的原因之一,即使它们是纯Python。 (在某些情况下,可以对它们进行调整和按摩,以明智地使用编码和解码。)据说2.5原生使用ASCII,这原则上可以提高兼容性,但我无法测试这个,因为我也是旧版OS / 400。
部分是因为EBCDIC,部分是因为OS / 400和QSYS文件系统既不像Unix也不像Windows,有些标准库没有实现或者执行不完善。这对你的影响有多严重取决于你想要做什么。
从好的方面来说,iSeries特有的功能非常有效。使用物理文件和流文件非常容易。从Python调用CL或RPG程序是相当轻松的。总而言之,我发现iSeries Python非常实用且非常值得。
更新:自问这个问题以来,iSeries Python已经开展了大量工作。 Version 2.7现已推出,这意味着它是2.x版本的最新版本。 forum的一些参与者相当活跃,并提供了惊人的支持。其中一个让Django在i上工作。正如预期的那样,迁移到原生ASCII字符串可以解决许多EBCDIC问题,并极大地提高了与第三方软件包的兼容性。我热情地为V5R3或更高版本的任何人推荐iSeries Python 2.7。 (对于早期版本的操作系统,我仍然强烈推荐使用iSeries Python 2.3.3。)
答案 1 :(得分:5)
听起来它会按预期工作。但是,对其他库的支持可能非常有限。
Timothy Prickett在本文中讨论了iSeries的一些Python端口:
http://www.itjungle.com/tfh/tfh041706-story02.html
此外,Python邮件档案中出现了一些讨论:
http://mail.python.org/pipermail/python-list/2004-January/245276.html
答案 2 :(得分:4)
iSeriesPython运行良好。 我们自2005年(或更早)开始在我们的开发和生产环境中使用它作为实用语言,用于生成COBOL源代码,生成PCML接口,发送SMS,验证/纠正某些数据......等。 使用iSeriesPython,您可以通过两种方式访问iSeries数据库:使用File400和/或db2模块。您可以执行OS / 400命令,并且可以使用QSYS.LIB成员和IFS流文件。 恕我直言,iSeries Python是非常强大的工具,比iSeries附带的REXX更好。 试试吧!
答案 3 :(得分:3)
大约3年前,我获准在一个盒子上安装iSeries Python。我发现它的功能与广告一样。我联系了开发人员,他非常善于回答问题。但是,在我考虑在生产中使用它之前,我不得不向开发人员咨询支持合同。这真的不是他的演出,所以他说不,我们取消了这个想法。我发现的主要限制是它在其他平台上的Python背后有几个版本。
我在iSeries上也有过很好的Jython经验。 iSeries完全支持Java。从理论上讲,你可以在iSeries上的RPG中做的一切,你可以用Java做,这意味着你可以在Jython中做到这一点。我在1999年或2000年通过JPython(Jython的旧名称)和smtplib.py从AS / 400(iSeries的旧名称)发送电子邮件。
答案 4 :(得分:0)
另一个要查找的地方是邮件列表MIDRANGE-L,或在midrange.com搜索列表中的列表。我知道他们已经谈过这个了。