Я посмотрел вокруг, но не нашел четкого ответа на свой вопрос.
У меня есть вполне законная потребность в поддержке N-версий одного и того же модуля Python.
Если они хранятся в одном и том же пакете/каталоге, они должны иметь уникальное имя, как в следующем примере:
.../some/package/my_module_1.0.py
.../some/package/my_module_1.1.py
.../some/package/my_module_2.0.py
-- etc. --
И каждый, в свою очередь, будет хранить свой номер версии с помощью атрибута "version".
Затем программа-потребитель импортирует нужную версию (например: import my_module_1.1).
Является ли это оптимальным (и наиболее питоническим) способом выполнения этой многомодульной версии?
Спасибо!
my_module_*
, вы могли бы сохранить синтаксис, совместимый с более чем одной версией. Например,except Exception, e:
является допустимым синтаксисом в Python2, но не в Python3, поэтому вам следует использоватьexcept Exception as e:
, поскольку он допустим в обеих версиях. - person zondo   schedule 15.03.2016sys.__modules__
, который содержит словарь импортированных модулей с ключами по имени, обычно по имени файла. Возможно, вы сможете скрыть проблему управления версиями, импортировав правильный модуль и всегда сохраняя его под одним и тем же ключом, независимо от фактического имени файла. - person Paul Cornelius   schedule 15.03.2016