16

これらの環境のうち 2 つを同時にターゲットにしようとすると、データベースなどを使用する必要がある場合は、その環境に固有のコードを作成する必要があると言えます。この状況をうまく処理する方法はありますか?

4

6 に答える 6

15

環境に固有のコードを記述する必要がある場合、pythons を使用してください。

import mymodule_jython as mymodule

import mymodule_cpython as mymodule

これを単純なモジュール (''module_importer''?) に入れ、次のようにコードを記述します。

from module_importer import mymodule

このように、module_importer.pyプラットフォームごとに変更するだけです。

于 2008-09-10T07:07:59.310 に答える
10

@Daren Thomas: 同意しますが、プラットフォーム モジュールを使用して、実行しているインタープリターを判断する必要があります。

于 2008-09-10T21:00:04.177 に答える
2

私は CPython と IronPython のコードを書きますが、ヒントは Jython でも機能するはずです。

基本的に、すべてのプラットフォーム固有のコードを個別のモジュール/パッケージに記述し、実行しているプラ​​ットフォームに基づいて適切なものをインポートします。(上記のcdlearyのコメントを参照)

これは、SQLite 実装の違いに関して、また GUI コードを実装している場合に特に重要です。

于 2008-10-13T22:33:17.953 に答える
1

#1 IMO: スレッドの安全性に焦点を当てる. CPython の GIL を使用すると、一度に 1 つのスレッドしかインタープリターにアクセスできないため、スレッドセーフなコードを簡単に記述できます。ただし、IronPython と Jython は少し手がかかりません。

于 2008-12-05T03:35:43.907 に答える
0

ここでは2つの大きな問題があります...

まず、私の知る限り、RAIIを持っているのはCPythonだけです。JythonやIronpythonなどで独自のリソースを閉じる必要があります。

そして第二に、前述のように、スレッドセーフです。

于 2009-03-12T06:11:27.827 に答える
0

あなたはすでにこれを知っていると確信していますが、残念ながら Jythonは c 拡張モジュールをロードできません。

于 2008-12-05T03:41:37.450 に答える