Элегантно импортировать локальные пакеты python?
Мне очень нравятся подходы локального управления пакетами во Flutter/Dart и Rust, и я надеюсь, что в Python может существовать похожее решение.
Например, у меня есть пакет utility python по адресу /path/of/the/utility, содержащий десятки файлов python, и пакет myapp по адресу /path/to/my/app. Чтобы myapp зависел от utility, если бы я использовал Flutter/Dart или Rust, я мог бы записать строку вроде:
utility:
path: /path/of/the/utility
А затем с удовольствием импортируйте его как import 'package:utility/somefile.dart. (Случай с Rust аналогичен, поэтому я не повторяюсь)
Однако в Python я не нашел такого решения (pip, похоже, не знает этого, как и conda). В настоящее время мне приходится использовать следующий уродливый подход:
// myapp/somefile.py
import sys
sys.path.append('/path/of/the/utility')
import utility
а также манипулировать моей IDE (в моем случае Intellij IDEA) так, чтобы она поняла, что этот пакет myapp зависит от пакета utility и не выдала мне большое красное подчеркивание.
Примечание: Может оказаться невозможным (так ли это?) позволить /path быть корнем пакета, а myapp быть подпакетом, потому что: (1) myapp, например, может быть проектом Django. (2) Будет трудно настроить ide (Intellij IDEA в моем случае), если огромный проект будет одним пакетом Python, так как он смешан с другими языками.
Вопрос: Могу ли я сделать что-то похожее на подход Flutter/Dart или Rust? Спасибо!