170 похожих чатов

Хм... Я понимаю, что человек мудрит, но почему обычная система

плагинов у всех такое удивление вызывает?

17 ответов

27 просмотров

У меня вызвало удивление, что он хочет из директории загружать плагин. Тогда непонятно, что делать с его зависимостями

evle- Автор вопроса
Pavel Павлик
У меня вызвало удивление, что он хочет из директор...

Ну, смотря что за приложение. Там может быть что-то тривиальное, где не ожидается внешних зависимостей и сделать один файл проще чем городить систему пакетов.

evle
Ну, смотря что за приложение. Там может быть что-т...

Так там городить ничего и не надо, все же очень просто. На самом деле, импортировать файл по определенному пути, не затрагивая PYTHONPATH довольно нетривиальная задача. Намного проще просто взять и сделать уже пакеты, что будет еще и намного более расширяемым решением

Zart
максимально тривиальная

Как по мне, spec = importlib.util.spec_from_file_location('custom_ext', './custom_ext/__init__.py') module = importlib.util.module_from_spec(spec) sys.modules['custom_ext'] = module spec.loader.exec_module(module) выглядит не просто

evle- Автор вопроса
Pavel Павлик
Так там городить ничего и не надо, все же очень пр...

Распространять потом плагины как будешь? Объяснять пользователю процесс установки вместо того чтобы "положи файл с плагином в папку". Да и что тут такого уж нетривиального, когда всё известно?

Pavel Павлик
Как по мне, spec = importlib.util.spec_from_file_...

ну если ты хочешь ходить сложным путем, кто тебя остановит...

Zart
ну если ты хочешь ходить сложным путем, кто тебя о...

Ну, покажи, как простым путем взять и импортировать файл по определенному пути, не затрагивая PYTHONPATH

evle
Распространять потом плагины как будешь? Объяснять...

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

Zart
ну если ты хочешь ходить сложным путем, кто тебя о...

Кстати, я это не сам придумал, а взял где-то из официальной документации

evle- Автор вопроса
Pavel Павлик
Ну, покажи, как простым путем взять и импортироват...

У нас само приложение уже в PYTHON_PATH. И где plugins вполне внутри приложения живёт. В простейшем случае этого достаточно чтобы делать в духе import_module(f"plugins.{file_name}") До всякого фен шуя вроде https://packaging.python.org/en/latest/guides/creating-and-discovering-plugins/ может просто дело не дойти.

evle
У нас само приложение уже в PYTHON_PATH. И где plu...

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

evle
У нас само приложение уже в PYTHON_PATH. И где plu...

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

evle- Автор вопроса
Pavel Павлик
Ну, как бы можно, но я думаю, что вариант с энтри ...

Ещё раз. Подумай о пользователе приложения. Представь что это что-то для простых человаков. Ты им будешь инструкцию с pip install писать?

evle- Автор вопроса
evle
Ещё раз. Подумай о пользователе приложения. Предст...

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

Pavel Павлик
Если нужна простота для пользователей, то они могу...

Я вижу тут единственную проблему, что удаление плагинов не будет удалять ненужные зависимости

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта