Как структурировать проекты на Python с помощью общих подпрограмм, используя git и buidout без символических ссылок - PullRequest
5 голосов
/ 21 августа 2011

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

Требования:

  • Не использовать символических ссылок (отладчик моей IDE не работает с ними)
  • Нет компиляции / перезапуска скрипта. Я хотел бы внести изменения в приложение без необходимости повторного запуска сценария / сборки.
  • Приложения должны находиться в папке проекта.

Вот структура:

app_one (git repo)
  |-- app_one (actual app uses by projects)
  |   +-- models.py
  |-- README.md
  +-- setup.py

project_one  (git repo)
  |-- project_one
  |   |-- apps
  |   |   |-- app_one
  |   |   |   +-- models.py
  |   |   | -- app_two
  |-- setup.cfg
  +-- setup.py

project_two  (git repo)
  |-- project_two
  |   |-- apps
  |   |   |-- app_one (same app as project_one)
  |   |   |   +-- models.py
  |   |   | -- app_two
  |-- setup.cfg
  +-- setup.py

В настоящее время я использую для этого git-субмодули; Недостатком является то, что нет никакой ссылки на подпапку репо. Я недавно читал о поддереве, будет ли это работать лучше?

В идеале я хотел бы использовать buildout , но я не нашел хорошего способа сделать это без использования символических ссылок. Если есть способ сделать это, пожалуйста, дайте мне знать.

Любые предложения будут с благодарностью.

1 Ответ

3 голосов
/ 21 августа 2011

mr.developer . Когда источник mr.developer извлечен и активирован, он становится setuptools / , распространяющим яйцо в сборке и таким образом извлечение будет тем, что используется любыми сценариями (такими как созданный zc.recipe.egg интерпретатор python) в сборке.

...