Проект Python с несколькими модулями с одинаковым именем - PullRequest
0 голосов
/ 06 ноября 2011

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

Сейчас я делаю что-то вроде:

  Common
    utilities.py
    VersionA
      Package
        moduleX.py
        moduleY.py
    VersionB
      Package
        moduleX.py
        moduleY.py

Мне требуется, чтобы в среде, где используются модули, просто указали путь, указывающий на правильную версию «Пакета».

Кроме того, есть один модуль, который разделяют оба пакета! "Utilities.py". Теперь я также прошу установщика добавить Utilties.py к пути.

Это сбивает с толку, и похоже на взлом. Тем не менее, я не могу найти лучший способ сделать это.

1 Ответ

3 голосов
/ 06 ноября 2011

Определите глобально доступную переменную env, которую вы будете использовать для выбора версии (VersionA, VersionB).Затем в Common/__init__.py введите:

import whenver_you_put_your_env as envloc

if (envloc.env == VersionA)
    import VersionA.Package as Package
elif (envloc.env == VersionB)
    import VersionB.Package as Package

Теперь, когда вы захотите использовать Package в файле, вы должны иметь возможность:

import Common.Package

и все готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...