@sattellite ну просто, в расте можно сделать например как-то так
[dependencies]
local_crate = { path = "../local_folder" }
И он подцепит крейт из этой папки, и слинкует
Питон же резолвит всё
а) через жопу
б) в рантайме
Top-level
@sattellite ну просто, в расте можно сделать например как-то так [dependencies] Питон же резолвит всё 8 comments
@sattellite ой это вообще параллельная тема, я не про это. Я про то, как стыковать пакеты в пределах одного проекта @mo окей. Тогда я зря полез в эту тему. В знакомых мне скриптовых языках это не вызывает проблем совсем, просто кладешь их в корне проекта и готово. @mo А питоновские относительные импорты — это не оно разве? Которые "from . import package" https://docs.python.org/3/reference/import.html#package-relative-imports @sunaonavi нет. Так можно только в пределах одного "крейта" (выражаясь растовой терминологией. Ты не сможешь так импортнуть что-то из уровня выше __main__ @sunaonavi т.е, если у меня образно есть такие три пакета common/ telegram_bot/ web_api/ Использовать common через относительные импорты они не смогут. Только через добавление в sys.path (через переменные окружения, и прочее), но это ещё более нестабильный подход @mo А все три образных пакета в одном каталоге? Тогда "from ..common import models" не сработает разве? @sunaonavi нет, тут зависит от того, какой файл запускается :ageblobcat: Выше него — импортами не вылезти |
@mo а разве нет формальных правил? Наверняка же они есть. Еще помню, чтобы зависимости проекта не лезли в системные пакеты используют virtual environment или что-то такое. Из старого опыта с зависимостями в Perl - есть системные пакеты, есть пакеты установленные в ~/.cpan, есть пакеты установленные по пути из специальной переменной и пакеты из пути переданного через флаг при запуске.