Подтвердить что ты не робот

Каковы некоторые стратегии для написания кода Python, который работает в CPython, Jython и IronPython

При попытке нацелиться на две из этих сред в одно и то же время я могу с уверенностью сказать, нужно ли использовать базу данных и т.д., вы должны написать уникальный код для этой среды. У вас есть отличный способ справиться с этой ситуацией?

4b9b3361

Ответ 1

Если вам действительно нужно написать уникальный код для среды, используйте pythons

import mymodule_jython as mymodule

import mymodule_cpython as mymodule

имеют этот материал в простом модуле ('' module_importer ''?) и напишите свой код следующим образом:

from module_importer import mymodule

Таким образом, все, что вам нужно сделать, это изменить module_importer.py на платформу.

Ответ 2

@Daren Thomas: Я согласен, но вы должны использовать модуль платформы, чтобы определить, какой интерпретатор вы используете.

Ответ 3

Я пишу код для CPython и IronPython, но подсказка должна работать и для Jython.

В принципе, я пишу весь код конкретной платформы в отдельных модулях/пакетах, а затем импортирую соответствующий на основе платформы, на которой я запущен. (см. примечание cdleary выше)

Это особенно важно, когда речь идет о различиях между реализациями SQLite и при использовании любого графического интерфейса.

Ответ 4

# 1 вещь IMO: Сосредоточьтесь на безопасности потоков. CPython GIL упрощает запись потокового кода, потому что только один поток может получить доступ к интерпретатору за раз. IronPython и Jython немного меньше, чем руки.

Ответ 6

Здесь есть две основные проблемы...

Во-первых, насколько мне известно, только у CPython есть RAII - вам нужно закрыть свои собственные ресурсы в Jython, Ironpython и т.д.

И во-вторых, как уже упоминалось, это безопасность потоков.