gpt4 book ai didi

python - 如何让Python代码编写一次,到处运行?

转载 作者:太空宇宙 更新时间:2023-11-03 19:24:58 24 4
gpt4 key购买 nike

我正在学习Python。我的意图是:

  1. 用 Python/Django 编写 Web 应用
  2. 创建 Android 应用(使用 Jython)
  3. 为 unix box 编写一些 python 脚本

我有一个(错误的)印象,因为 Python 已经在 J​​ava (Jython) 和 .NET (IronPython) 中实现,所以我可以简单地编写我的 Python 代码并通过解释器/编译器运行它。

我想如果我用 CPython 编写一个 hello world 并用 Jython 编译它,我就会得到 Java 字节码。如果我用 IronPython 编译它,我会得到 .NET 字节码。

但现在看来常规​​ Python 代码无法与 Jython 编译器/解释器一起工作。您必须导入一些奇特的 Java 特定模块。因此,这意味着我必须使用 Java 模块/库重新编写 Java 程序。

关于如何编写 Python 代码以使其在任何地方都能工作,有什么建议吗? Web、Unix、Android。

注意:我不想学习 Java。

谢谢

最佳答案

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 团队也会拒绝,但我并没有屏住呼吸。任何一种选择都需要大量工作。

关于python - 如何让Python代码编写一次,到处运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8472264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com