Я хочу использовать git, чтобы позволить мне работать над несколькими функциями в модуле, который я пишу одновременно. В настоящее время я использую SVN только с одним рабочим пространством, поэтому у меня есть только рабочее пространство на PYTHONPATH. Я понимаю, что это далеко не идеально, поэтому мне было интересно, кто-нибудь может предложить более «правильный» способ сделать это.
Позвольте мне уточнить одну гипотетическую ситуацию:
Я говорю, что у меня есть модуль 'eggs' с подмодулями 'foo' и 'bar'. Компоненты в 'bar' используют код в foo, поэтому eggs / bar / a.py может 'import eggs.foo'.
Скажите, что 'eggs' находится в хранилище git. Я хочу попробовать некоторые изменения в 'foo', поэтому я копирую его. Проблема в том, что import import.foo в eggs / bar находит исходный репозиторий в PYTHONPATH, поэтому он использует старый foo вместо моего модифицированного.
Как мне настроить себя так, чтобы каждая копия модуля использовала свой собственный связанный 'foo'? Спасибо.
edit- Спасибо за указатель на относительный импорт. Я прочитал об этом и вижу, как его применить. Одна из проблем, с которыми я столкнулся при его использовании, заключается в том, что я создал довольно большую кодовую базу, и я не слишком аккуратен в этом, так что большинство модулей проводят быструю «самопроверку» под if __name__ == '__main__':
, что от Я прочитал не играет с относительным импортом:
Другое решение, которое я смог найти в Google, - это намеренно манипулировать sys.path, что выглядит как еще более худший взлом. Есть ли другие возможности?
edit - Спасибо за предложения. Изначально я неправильно понял ветви git, так как указанные ветки - именно то, что я хочу. Тем не менее, раньше я не слышал об относительном импорте, так что спасибо за это. Я узнал что-то новое и могу использовать его.