Тем, кто занимается нейронками, надо срочно ввести в массовое употребление термин "склеил", чтобы фраза "мальчик в клубе склеил модель" обрела третье дыхание
( Read more... )
> То, что в Python библиотеки ставятся глобально, а работу с разными наборами библиотек предлагают решать переключением глобальной среды - это конечно архитектурно-пользовательская дичь, за которую Гвидо Россума надо хорошенько поджарить.
А чем воркфлоу с виртуальными окружениями отличается принципиально от любого другого языка с пэкет менеджментом, я не очень понимаю чем в 99% случаев pip, отличается от npm. Ну т.е. да можно конечно поставить библиотеки питоновские на всю систему, ну так и у npm есть global. Но я за всю свою более чем десятилетнюю карьеру питон программиста этого не делал (в трезвом уме и сознании в том что потом пошло в продакшен :) ). Тем более после появления докера. Мне кажется что просто не хватает информации. python -m venv ?
тем что локализация изменений - это не пустой звук, это архитектурный принцип, выстраданный за десятки лет
глобальную установку можно делать и в npm, и многие так и делают - особенно если инструмент требуется пользователю, а не программе. К примеру, установщик каких-то шаблонов или утилита для работы с файлами.
но если нам нужны конкретные версии библиотеки для работы пакета, то их лучше класть рядом с пакетом, в его личную папку зависимостей - это снижает вероятность конфликта и обеспечивает работоспособность спустя годы.
Спустя годы ты возвращаешься к этой программе и хопа - она работает! А уже спустя полгода мне надо снова разбираться в Python пакетах - под какой средой они у меня ставились и вообще сохранилась ли эта среда
> но если нам нужны конкретные версии библиотеки для работы пакета, то их лучше класть рядом с пакетом, в его личную папку зависимостей - это снижает вероятность конфликта и обеспечивает работоспособность спустя годы.
Hу да это стандартная практика сколько я себя помню питон программистом. Очень давно мы делали gz файлы, типа тех что сейчас требуются для Amazon Lambda.
Сейчас это все опять же делается через докер образы в которых зашиты конкректный код библиотек.
Да видимо документации где то не хватает, чтобы люди пользовались best practices, но нет это не проблема, по крайней мере где то с 2016го ( а скорее всего и раньше)
«Конкретно для игр это когда-то было актуально, но с ростом разрешений и текстур мы пришли к тому, что средняя современная игра по весу составляет под сто гигабайт и дать полную независимость за счет включенных внутрь, а не общих решений было бы дешевым решеним», - ну вот поэтому и не желают ещё и библиотеки с собой таскать, что картинками сто гигов забито
( ... )
«несколько паков текстур под разные разрешения» -- это не проблема, в трехмерках от первого лица всё одно текстуры на разный «масштаб» идут, пока нейросетку не приучили их на ходу перерисовывать : ) тут встречный момент/вопрос: текстуры же эти не кисточкой на бумажке перерисовывают (я надеюсь), а процедурно творят из нескольких накликанных картинок. Чтобы их не создавать при запуске приложения на "темп-диске", а подтиркой этого хлама чтобы система занималась?
а регенерация текстуры или уменьшение - это нагрузка на процессор, то есть для слабых машин опять засада ))
Но многие действительно не парятся и кидают один пак текстур в мобильной разработке. Тем более, что там при публикации можно просто ограничить спектр поддерживаемых устройств и вычеркнуть несколько процентов устройств 2014 года и раньше
А еще в ряде случаев проще собрать exe'шник pyinstaller'ом чем поддерживать зависимости, поскольку виртуальные окружения имеют свои глюки. Хотя это на корню убивает идею интерпретируемости скрипта.
Гадюшня глобальных установок это не изобретение Гвидо, а канононичный Unix way (юнихвей). Когда всё в одну помойку, а если не влезает - придумываются другие помойки вроде usr. Отсюда и "установка" вместо "копирования", и прочие неприятности.
А чтобы сделать хорошо (но при этом дедуплицированно) - желательны сильно альтернативные сегодняшним решения даже в плане файловых систем.
Comments 18
А чем воркфлоу с виртуальными окружениями отличается принципиально от любого другого языка с пэкет менеджментом, я не очень понимаю чем в 99% случаев pip, отличается от npm. Ну т.е. да можно конечно поставить библиотеки питоновские на всю систему, ну так и у npm есть global. Но я за всю свою более чем десятилетнюю карьеру питон программиста этого не делал (в трезвом уме и сознании в том что потом пошло в продакшен :) ). Тем более после появления докера. Мне кажется что просто не хватает информации. python -m venv ?
Reply
глобальную установку можно делать и в npm, и многие так и делают - особенно если инструмент требуется пользователю, а не программе. К примеру, установщик каких-то шаблонов или утилита для работы с файлами.
но если нам нужны конкретные версии библиотеки для работы пакета, то их лучше класть рядом с пакетом, в его личную папку зависимостей - это снижает вероятность конфликта и обеспечивает работоспособность спустя годы.
Спустя годы ты возвращаешься к этой программе и хопа - она работает!
А уже спустя полгода мне надо снова разбираться в Python пакетах - под какой средой они у меня ставились и вообще сохранилась ли эта среда
Reply
Hу да это стандартная практика сколько я себя помню питон программистом. Очень давно мы делали gz файлы, типа тех что сейчас требуются для Amazon Lambda.
Сейчас это все опять же делается через докер образы в которых зашиты конкректный код библиотек.
Да видимо документации где то не хватает, чтобы люди пользовались best practices, но нет это не проблема, по крайней мере где то с 2016го ( а скорее всего и раньше)
Reply
Одобряю докер как лекарство против того, что есть. Избегаю докера когда это возможно.
Невозможно завернуть в докер все необходимые программы - ни одно железо не потянет.
Reply
Reply
А еще их может быть несколько пачек, если решили поддерживать и низкое разрешение на слабых компьютерах.
За PC игры не отвечу, но в мобильных приложениях несколько паков текстур под разные разрешения - официально рекомендуемая практика от Google
Reply
тут встречный момент/вопрос: текстуры же эти не кисточкой на бумажке перерисовывают (я надеюсь), а процедурно творят из нескольких накликанных картинок. Чтобы их не создавать при запуске приложения на "темп-диске", а подтиркой этого хлама чтобы система занималась?
Reply
Но многие действительно не парятся и кидают один пак текстур в мобильной разработке. Тем более, что там при публикации можно просто ограничить спектр поддерживаемых устройств и вычеркнуть несколько процентов устройств 2014 года и раньше
Reply
Reply
возьму на вооружение
Reply
А чтобы сделать хорошо (но при этом дедуплицированно) - желательны сильно альтернативные сегодняшним решения даже в плане файловых систем.
Reply
я сам с историей и настройками Unix знаком хуже
Reply
Leave a comment