我正在学习Python。我的意图是:
由于Python已经在Java(Jython)和.NET(IronPython)中实现,因此我感觉不到(错误),我可以简单地编写我的Python代码并通过解释器/编译器运行它。
我想如果我在CPython中编写了一个hello world并用Jython编译它,我会得到Java字节码。如果我用IronPython编译它,我会得到.NET字节码。
但现在看来普通的Python代码无法与Jython编译器/解释器一起使用。您将导入一些奇特的Java特定模块。所以,这意味着,我将不得不使用Java模块/库重新编写我的Java程序。
有关如何编写我的Python代码以便它可以在任何地方工作的任何提示吗? Web,Unix,Android。
注意:我不想学习Java。
由于
答案 0 :(得分:2)
print 'Hello, World!'
这适用于任何名副其实的Python实现。大多数其他纯Python代码也是如此。在使用库时,它变得棘手,因为Jython和IronPython缺少一些标准库模块,并且不支持C扩展。处理特定于平台的代码也会带来一些问题。
如果您希望代码可移植,则需要从共享代码中删除尽可能多的依赖项。标准库通常没问题(但两者都不完整),如果纯Python外部模块只依赖于其他纯Python模块,那么它们通常都可以。
如果您确实需要检测它们,我相信规范检查是:
if os.name == 'java': # Jython
if sys.platform == 'cli': # IronPython
Jython和IronPython都不会生成在没有Jython / IronPython存在的情况下运行的程序。原则上它是可能的,甚至可以将Python的子集编译为纯字节码;前者需要在Python引擎中进行链接,后者需要限制你可以使用的Python部分。
如果有人为IronPython提供这个,我不会拒绝,我怀疑Jython团队也会这样,但我不会屏住呼吸。这两个选项都是很多的工作。
答案 1 :(得分:0)
请更具体地说明您要做的事情。你的常规Python代码是什么?什么不符合您的预期?
根据Jython FAQ,Jython是Python语言的一种实现。相同的Python代码应该在Jython或CPython上产生相同的结果。