2008-09-10 55 views

回答

15

如果找到你需要编写唯一代码的环境中,使用蟒蛇

import mymodule_jython as mymodule 

import mymodule_cpython as mymodule 

有这个东西在一个简单的模块(“” module_importer'?),写你这样的代码:

from module_importer import mymodule 

这样,您只需要在每个平台上改变module_importer.py即可。

+1

So Daren,有没有办法让module_importer根据一些环境变量动态地导入正确的变量等。 – minty 2008-09-10 07:12:44

+1

对不起,我在这里画一个空白。这将是一个优秀的SO问题:“如何动态地确定我们是否正在运行Jython,CPython或IronPython?”。然后,你可以在ifs中做... – 2008-09-10 11:42:39

10

@Daren Thomas:我同意,但您应该使用platform module来确定您正在运行哪个解释器。

2

我为CPython和IronPython编写代码,但提示也应该适用于Jython。

基本上,我将所有平台特定的代码写入单独的模块/包中,然后根据我运行的平台导入相应的代码。 (请参阅上面的cdleary的注释)

这对于SQLite实现与实现任何GUI代码之间的差异时尤为重要。

1

#1事情IMO:专注于线程安全。 CPython的GIL使编写线程安全代码变得简单,因为一次只有一个线程可以访问解释器。 IronPython和Jython虽然有点不太好用。

0

有两种主要问题在这里打球......

首先,据我所知,只有CPython的有RAII - 你必须在Jython,Ironpython等中关闭自己的资源。

第二,如前所述,线程安全。

相关问题