Относительный импорт Python из родительского без sys.path

1

У меня есть эта структура:

Git
 |
 |-->Framework
 |          |
 |          '---> framework.py
 |
 '-->Software hanging on framewok
            |
            '---> main.py // here i need inherit class from framework.py module.

До сих пор я использую следующую процедуру, которую я нашел во многих других ответах на этом форуме:

import sys
sys.path.append("../Framework")
from framework import Framework

class Main(Framework):
    def __init__(self):
        super().__init__()

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

  • 2
    Могу ли я спросить, где именно вы нашли этот sys.path sys.path, чтобы я мог понизить его?
  • 0
    @ Aran-Fey Например, здесь stackoverflow.com/questions/714063/… с 178 ответами.
Показать ещё 6 комментариев
Теги:
python-3.x
python-import

1 ответ

1

Я настоятельно рекомендую вам разделить репозиторий git на два - один репо для фреймворка, один для проекта, использующего его. Затем правильно упакуйте фреймворк, чтобы pip мог его установить (нет необходимости отправлять его в pipy, pip может установить из git), создать virtualenv для проекта "software", а pip установить фреймворк в virtualenv с помощью "редактируемого" флага,

Я понимаю, что это может показаться большой работой, но на самом деле это намного проще и быстрее, чем вы могли бы опасаться, и из опыта (я имею в виду многолетний опыт работы над множеством проектов) это решение, которое вызовет меньше головных болей и проблем в долгосрочной перспективе.

  • 0
    К сожалению, другое хранилище не вариант

Ещё вопросы

Сообщество Overcoder
Наверх
Меню