Что делать если нужно поставить какую-то Python-библиотеку а root-прав нет? То есть в систему библиотеку никак и ничего не поставить.
Есть как минимум два способа это решить правильно!
🔸 Сделать виртуальное окружение и ставить там что угодно.
Это позволит создать полностью независимое исполняемое окружение для ваших приложений.
Все библиотеки будут храниться в домашней директории юзера а значит доступ на запись имеется.
Создать очень просто:
python3 -m venv ~/venvs/myenvname
Теперь активируем окружение
# Linux
source ~/venvs/myenvname/bin/activate
# Windows
%userprofile%\venvs\myenvname\Scripts\activate.bat
Можно ставить любые библиотеки и запускать приложение.
Это стандартный метод работы с любым проектом. Если еще не используете его, то пора начинать. Даже при наличии root доступа!
🔸 Бывает, что нет возможности запустить приложение из своего виртуального окружения. Например, его запускает какой-то сервис от вашего юзера и вставить активацию окружения вы не можете.
В этом случае можно установить библиотеки для Python не глобально в систему, а только для юзера.
Выполните этот код в консоли:
python3 -m site
Вы получите что-то такое:
sys.path = [
'/home/user',
'/usr/lib/python37.zip',
'/usr/lib/python3.7',
'/usr/lib/python3.7/lib-dynload',
'/home/user/.local/lib/python3.7/site-packages',
...
]
USER_BASE: '/home/user/.local'
USER_SITE: '/home/user/.local/lib/python3.7/site-packages'
ENABLE_USER_SITE: True
Нас интересует параметр USER_SITE. Это путь к пользовательским библиотекам, которые доступны по умолчанию, если они есть.
Именно сюда будут устанавливаться модули если добавить флаг --user при установке чего-либо через pip
pip install --user requests
Для этой команды не нужны root-права.
После неё можно запускать системный интерпретатор без виртуальных окружений и установленная библиотека будет доступна для текущего юзера.
Параметр USER_BASE показывает корневую директорию для хранения user-библиотек. Её можно изменить с помощью переменной окружения PYTHONUSERBASE
export PYTHONUSERBASE=~/pylibs
python3 -m site
...
USER_BASE: '/home/user/pylibs'
USER_SITE: '/home/user/pylibs/lib/python3.7/site-packages'
Получается некоторое подобие виртуального окружения для бедных 😁 которое можно менять через эту переменную (не делайте так!Лучше venv!)
🔸 Дописывание пути в PYTHONPATH
Этот способ не входит в список "двух правильных", но тоже рабочий. Здесь придётся сделать всё несколько сложней.
Сначала ставим библиотеку в любое место указывая путь установки
pip3 install -t ~/mylibs modulename
Библиотека установится без привязки к какому-либо интерпретатору. То есть по умолчанию не будет видна. Теперь в нужный момент добавляем этот путь в sys.path или в PYTHONPATH.
Не буду советовать так делать. Единственный раз когда этот способ мне пригодился и решил поставленную задачу, это при создании общей библиотеки для кластера компьютеров.
Модули лежат в сети и подгружаются для всех из одного и того же места. То есть обновлять файлы требуется только один раз а не на всех хосты отдельно.
Минусы такого подхода:
▫️Нужно всем хостам пробить нужный путь в .bashrc или ещё куда-то чтобы он сетапился на старте.
▫️Чем больше хостов тем больше нагрузка на сеть. Иногда такой способ не подходит именно по этой причине. Тогда Ansible вам в помощь.
▫️Не очень подходит если хосты с разными операционками. Некоторые библиотеки различаются для Linux и Windows (там, где есть бинарники) и приходится мудрить более сложные схемы.
#tricks#basic
#freelance
Всем привет!
Ищу специалиста для реализации проекта
Задача:
Имеется DWH на PosgreSQL.
Необходимо построить OLAP кубы. В сумме около 20 измерений.
ТЗ в виде готовых excel, которые напрямую вытягивают данные из БД.
Требование:
Опыт разработки OLAP с нуля;
Знание SSAS MD, MDX, DAX;
По оплате готов услышать ваши предложения.
Подробности в лс -@zxcv9009
Много новых людей пришло, расскажу ещё историю из бытия фрилансером.
Делали мы как-то с другом проект для одной большой конторы (в своей области самой крупной в городе, миллиардные обороты). И вот там на старте нужно было подписаться в техзадании. А техзадание это такая увесистая папка страниц на сто. И подписаться мне, как руководителю проекта, нужно было на каждой странице.
Когда проект запустился, ядро мы собрали быстро. Полный план был что-то типа полгода, но в конечном итоге заняло полтора, потому что после сборки ядра мы практически непрерывно занимались правками и замечаниями. Каждый месяц мы приезжали к заказчику и показывали, что сделали. А нам составляли список из 10-20 новых пунктов. За доработки доплачивали, но в какой то момент стало понятно, что мы в некотором смысле работаем на аутсорсе, хотя подписывались на один конкретный проект. А оставались мы работать, потому что проект не был введён в эксплуатацию, и бросать его без запуска не хотелось.
Заказчик в итоге не переставал заваливать правками, шли месяцы. Впоследствии директор компании сменился, новому проект был без надобности, он заплатил нам остаток, который должен был, и проект остался навечно похоронен.
Как так вышло: огромное и очень подробное техзадание, но всё равно непрерывные правки и замечания? Я позже рефлексировал этот момент и пришёл к таким выводам:
1. Заказчик описал в техзадании конечную систему, которую хотел бы видеть. Нам была нарисована практически каждая кнопка будущей софтины: очень детально и подробно. При этом результат, который требовался заказчику, был описан только в общих чертах (ещё и менялся по ходу дела). ТРИЗ учит нас обращать внимание на результат, а не на способ его достижения.
2. Заказчик не был готов ничего менять со своей стороны. Представьте, я прихожу в спортзал к тренеру и говорю, что вот вам деньги, а я хочу мускулистое тело. Мне тренер предлагает программу занятий. Но я заявляю, что нет, мне некогда, у меня нет времени и возможности ходить. Вообще для меня слишком дорого будет перестроить процессы в своей жизни. Так что нет, никаких походов на занятия. Я же плачу деньги, в конце-концов. Давайте, заплачу ещё больше, если требуется. Дам тренеру больше времени. Так же и тут: в компании были не готовы перестраивать процессы, обновлять софт и железо, обучать персонал. Поэтому новую систему пытались интегрировать со старой, а в интерфейсе использовать не лучшие решения, а привычные.
#dev#freelance
#freelance#ML#вакансия
ML инженер
О проекте
RedCat․ai — технологическая B2B-платформа для подбора недвижимости. Мы создаём ИИ-ассистента для риэлторов, который помогает автоматизировать процессы поиска и консультирования клиентов. Наш подход основан на мультиагентной архитектуре и современных методах работы с LLM.
Что предстоит делать
• Разрабатывать новых агентов в мультиагентной системе ассистента
• Проектировать и улучшать пайплайны на базе LLM
• Работать с RAG: улучшение поиска, оптимизация ответов
• Подключать источники данных и строить интеграции в систему агентов
• Вносить улучшения и правки в существующие модули ассистента
Мы ожидаем от вас
• Опыт коммерческих проектов с ML/LLM, желательно завершённых и внедрённых
• Глубокое понимание RAG-архитектур (FAISS/ElasticSearch + LLM)
• Навыки разработки и оркестрации мультиагентных систем или аналогичных пайплайнов
• Уверенное владение Python и современными ML-фреймворками (LangChain, HuggingFace, PyTorch или аналоги)
• Понимание принципов построения AI-сервисов для реальных пользователей
Формат работы
• Фриланс, частичная занятость
• Работа напрямую с продуктовой командой RedCat․ai
Будет плюсом
• Опыт в диалоговых системах, виртуальных ассистентах, чат-ботах
• Знание тонкостей работы с большим количеством внешних источников (API, базы знаний)
Что предлагаем
• Работа над реальным продуктом в сфере PropTech и AI
• Гибкий формат: фриланс, задачи по мере готовности команды
Откликнуться @julb57
#freelance#frontend
⚙️HTML va ⚙️ CSS’ni yaxshi bilsangiz ham daromad topishingiz mumkin!
👉 Oddiygina shablonlar tayyorlab, ularni maxsus marketplace’larda sotishingiz mumkin. Bunday platformalarda sizning ishlanmangiz dizaynerlar va dasturchilar tomonidan xarid qilinadi.
Eng mashhur bozorlar:
◾️ThemeForest – eng yirik va tajribali sotuvchilar uchun maydon
◾️TemplateMonster – yangi boshlovchilar uchun qulay variant
◾️Creative Market – minimalistik va estetik dizaynlar uchun mos joy
💡 Agar shabloningiz sotilmasa ham, siz o‘zingizga eng katta boylikni topasiz — amaliy tajriba va ko‘nikma.
❓Siz hozirgacha tayyorlagan ishlanmangizni sotishga uringanmisiz?
💻@dasturlash_hayoti— Dasturchilar hayotidan foydali maslahatlar
How BLC Market will grow
We do not use traditional advertising as the main channel.
Growth will be built through users.
Each participant will be able to:
— invite others
— build their own network
— participate in the development of the community
Details coming soon.
#freelance#community
FAQ | BUY
The early core of BLC Market users is now being formed.
These people will:
— be the first to see the working version
— gain access to testing
— be able to influence the product's development
Later, an open growth model through invitations will be implemented.
For now, only those who are already inside can get access.
#freelance#community
FAQ | BUY