Что делать если нужно поставить какую-то 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
#HIVE/USDT analysis :
#HIVE is currently experiencing an upward trend, trading above the 200 EMA. The price is positioned above the support zone following a corrective pullback. It is anticipated that the price will rebound from this level and test the previous swing high.
TF : 1h
Entry : $0.2807
Target : $0.3037
SL : $0.2675
#HIVE/USDT analysis :
#HIVE is in an uptrend, forming higher highs (HHs) and higher lows (HLs) structure while trading above the 200 EMA. The price is currently trading above the support zone. It is anticipated to rebound from this level and sustain its bullish momentum to test previous highs.
TF : 1H
Entry : $0.1770
Target : $0.1814
SL : $0.1743
#HIVE/USDT analysis :
#HIVE is currently consolidating above the support zone and the 200 EMA. The price is expected to sustain its bullish momentum and establish new highs. It is advisable to await a pullback for a long entry.
TF : 2H
Entry : $0.1859
Target : $0.2026
SL : $0.1818
#HIVE bounced from the Green zone on Weekly time frame,now price is trying to break up the trendline to continue the bullish trend 👀
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️
Bitcoin Miner Invests in AI Tech
HIVE, a Canadian bitcoin miner, invests $30 million in AI computations using Nvidia GPUs. HIVE aims for around $15 million annual revenue from this initiative post-bitcoin halving. Meanwhile, many public mining stocks are expected to end the year in loss due to rising operational costs and reduced mining profitability. Full details here: Forklog.
#Bitcoin#AI#Mining#HIVE#Investment#Nvidia#Cryptocurrency#Halving#TechInnovation#PublicMining#CryptoMarket
#вакансия#hadoop#sql#java#hive#spark#python#scrum#agile
🚀 Вакансия: Старший разработчик Hadoop🚀
Локация: Санкт-Петербург/Москва (гибридный формат)
Вилка: 250 - 350К
✈️ Готовы обсудить релокационный пакет для кандидата не из Санкт-Петербурга и Москвы.
О нас:
Мы — ведущий банк России, активно развивающий свои цифровые продукты и услуги. Сейчас мы ищем опытного и амбициозного Старшего разработчика Hadoop, который присоединится к нашей команде для работы над инновационными проектами в области данных и аналитики.
Что вам предстоит делать:
- 🤝 Взаимодействовать с бизнес-заказчиками, понимать и структурировать их требования.
- ✍️ Разрабатывать функциональные требования для построения витрин данных.
- 🛠 Создавать прототипы витрин с использованием SQL, Java, Python, Spark.
- 🧪 Разрабатывать алгоритмы тестирования.
- 📑 Документировать разрабатываемые компоненты ПО.
- 🔧 Устранять дефекты, анализировать и исправлять инциденты в рамках 3-й линии поддержки.
- 🏃♂️ Работать в SCRUM спринтах.
Наши ожидания:
- ✅ Знание SQL (подтверждается прохождением теста).
- 📈 Опыт в бизнес и системном анализе не менее 2 лет: выявление, фиксация, согласование требований, постановка задач разработке, разработка проектной и сопроводительной системной документации.
- 👥 Опыт командной разработки с использованием Jira и Confluence; знание BitBucket будет плюсом.
- 🧩 Умение формализовывать задачи в виде четких и понятных алгоритмов.
- 🎓 Высшее образование.
- 💬 Отличные коммуникативные навыки, самостоятельность, внимательность к деталям, обязательность, ответственность.
Будет преимуществом:
- 📚 Опыт работы с Hadoop и знания его архитектуры.
- 🖥 Знание Hive, Java, Python, Spark.
- 🏃 Опыт работы в Agile.
- 📜 Знание и умение работы с wiki-системой Confluence и трекинговыми системами (Jira, Redmine и т.д.).
- 🏦 Знание банковской предметной области.
Мы предлагаем:
- 📄 Официальное оформление и стабильный, прозрачный доход.
- 🏆 Все льготы и преимущества работы в аккредитованной ИТ-компании.
- 🎁 Партнерские программы и скидки для сотрудников.
- 🏢 Гибридный формат работы.
Если вы хотите развиваться в динамичной компании и работать над интересными проектами в сфере больших данных, мы будем рады видеть вас в нашей команде!
🙋🏼♀️По всем вопросам к @BekhterevaElena
#вакансия#ds
Мы в Циан 🏘 ищем сильного Senior Data Scientist-а в команду CRM.
Локация - Полная удаленка внутри РФ. Если есть желание ходить в офис, у нас есть замечательные современные офисы в Москве, Питере и Новосибе.
Вилка - от 350 до 500 гросс, готовы обсуждать
О нас
В Циан большая команда ML. В команде настроены процессы перфоманс ревью, регулярного обмена опытом, выделяем время на исследовательскую работу!
Команда CRM занимается прямыми коммуникациями с клиентами (пуши, емейлы, смски и тд)
Наш стек
● Python (Numpy, SciPy, Pandas, sklearn, PyTorch);
● Экосистема Hadoop (PySpark, Hive, Kafka);
● Airflow;
Задачи:
● Повышение эффективности пуш-уведомлений, емейлов и других каналов прямых коммуникаций с клиентами;
● Оптимизация коммуникационной нагрузки, выбор оптимального канала коммуникации, выбор оптимального времени отправки;
Требования к кандидату
● Опыт: Не менее 3х лет релевантного опыта на позиции DS в продуктовой компании
● Python: пишет легко читаемый и поддерживаемый код
● SQL (оконные функции, оптимизация запросов)
● Apache стек: HDFS/Kafka/Spark (DF API)
● Классический ML: бустинги, линейные модели.
● Базовые знания в NLP и CV: трансформеры, TF-IDF
● DL: PyTorch.
Плюшки:
ДМС с первого дня (стоматология, госпитализация, полис ВЗР), Кафетерий льгот Benefactory, 5 day off в год, помимо основного отпуска.
Пишите в ЛС рекрутеру / мне (@DANAlina95 / @kgavrilchik) или скидывайте свои резюме на [email protected]
#Python#Numpy#SciPy#Pandas#sklearn#PyTorch#Hadoop#PySpark#Hive#Kafka#Airflow