これらの環境のうち 2 つを同時にターゲットにしようとすると、データベースなどを使用する必要がある場合は、その環境に固有のコードを作成する必要があると言えます。この状況をうまく処理する方法はありますか?
6 に答える
環境に固有のコードを記述する必要がある場合は、pythons を使用してください。
import mymodule_jython as mymodule
import mymodule_cpython as mymodule
これを単純なモジュール (''module_importer''?) に入れ、次のようにコードを記述します。
from module_importer import mymodule
このように、module_importer.py
プラットフォームごとに変更するだけです。
@Daren Thomas: 同意しますが、プラットフォーム モジュールを使用して、実行しているインタープリターを判断する必要があります。
私は CPython と IronPython のコードを書きますが、ヒントは Jython でも機能するはずです。
基本的に、すべてのプラットフォーム固有のコードを個別のモジュール/パッケージに記述し、実行しているプラットフォームに基づいて適切なものをインポートします。(上記のcdlearyのコメントを参照)
これは、SQLite 実装の違いに関して、また GUI コードを実装している場合に特に重要です。
#1 IMO: スレッドの安全性に焦点を当てる. CPython の GIL を使用すると、一度に 1 つのスレッドしかインタープリターにアクセスできないため、スレッドセーフなコードを簡単に記述できます。ただし、IronPython と Jython は少し手がかかりません。
ここでは2つの大きな問題があります...
まず、私の知る限り、RAIIを持っているのはCPythonだけです。JythonやIronpythonなどで独自のリソースを閉じる必要があります。
そして第二に、前述のように、スレッドセーフです。
あなたはすでにこれを知っていると確信していますが、残念ながら Jythonは c 拡張モジュールをロードできません。