Что делать если нужно поставить какую-то 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
Ненависть к Marathon, равно как и к Highguard, конечно, должна изучаться врачами, как случаи массового психоза.
Тут уж доходит до того, что люди регистрируют новые аккаунты Steam, чтобы голосовать за собственные негативные ревью.
Ну там у них когнитивный диссонанс - немытые блогеры из нижнего сказали, что Марафон говно, а народу игра нравится шо пиздец. Не может такого быть, должен быть где-то подвох. Нужно срочно подогнать реальность под заранее сформированные убеждения. Дикари ебаные.
Ну, и, конечно, нет предела лицемерия этих мудаков-инфлюенсеров, которые каждый раз проворачивают одну и туже манипуляцию - создают заранее негативное мнение, потом накидывают на вентилятор по любому поводу, подпитывая confirmation bias и потом, как ни в чем не бывало, разводят руками и говорят: «Ну, я же предупреждал. Смотрие, людям действительно не нравится». И у новых IP, особенно от новых разработчиков, в такой ситуации просто нет шансов. А вот когда игра и команда оказываются с сильной фан базой и людям реально нравится - тут все и ломается. Интересно, они ссыкливо сдристнут с темы или сейчас с новой силой накидывать пойдут.
Что же до #Marathon, то после 20 часов могу сказать, что это настоящий наркотик и самое важное, что произошло с шутерами со времен выхода первой Destiny и Bungie снова это сделали.
Игра невероятно глубока и не раскрывает всех карт сразу. И она очень требовательна к игроку. Если Arc Raiders это прям казуальная прогулка, то в Марафоне ебут каждый метр не стесняясь - и люди, и ИИ.
В ней нужно прям разбираться. И это пипец как подкупает. Тебе буквально продали билет в альтернативную реальность, где нефига непонятно, но очень интересно. И, судя по всему, как сервис, она будет брать пример с Helldivers 2 - то есть незаметно подкидывать прямо в живую игру намеки на произошедшее и развитие сюжета, выходы на секретные локации, и т.д. Посмотрим, словом. Обидно, конечно, что мудаки поднасрали и сейчас куча долбаебов ходит с предубеждениями и цифр арка и хеллдайверс игра теперь уж точно не повторит. Но это прям игра-событие, без всяких. Увы, сейчас у нас индустрия фастфэшн, хайпа и говноигр, а не глубоких историй каких-то.
#игры@alogvinovOfficial
Gatto | Official Channel: Upcoming Motimouse and Tornado Marathon
#rewards#marathon
The Gatto | Official Channel announces the Motimouse and Tornado Marathon starting on November 22. Participants can earn rewards by engaging in competitions, with higher rewards for completing more competitions, both individually and as a clan.
Source: link
@tonlines
Gatto | Official Channel: Join the Motimouse Marathon!
#Motimouse#marathon
Gatto | Official Channel announces the Motimouse Marathon starting tonight. Participants can compete in up to 800 races per day on May 5 and 6, and those achieving 1600 events within two days will earn various rewards including eggs and gold coins.
Source: link
@tonlines
🏅Distribution of unique SBT badges to ONTON & GVWS Marathon participants has begun!
🤝 The ONTON team, together with GVWS, launched the distribution of custom badges in the Soulbound Token (SBT) format to everyone who participated in the marathon dedicated to the launch of the Constructor.
These badges serve as official confirmation of activity in the project and can play an important role in future drops, bonuses and participation in the ecosystem.
To get your badge:
✅ You need to log in and go through the steps in the bot — @theontonbot
✅ Then go to your personal account on getgems.io
✅ Find GVWS SBT and click the Claim NFT button
😋The badge is displayed in three places at once:
— in the GVWS profile
— in ONTON
— in Ton Society
💪 Participants who completed the marathon and already interacted with the ONTON bot received a push notification with the ability to brand. Those who did not participate in ONTON activities, but fulfilled the conditions of the marathon, will receive a notification later — via the bot @gvws_bot.
More details: here
#SBT#Marathon#TON#ONTON
Kalleh kompaniyasi 6-chi Xalqaro Toshkent Marafonida qatnashdi va poyga ishtirokchilarini qo‘llab-quvvatladi! 🏃🏅
Biz sport nafaqat sog‘lom turmush tarzi, balki oldimizga qo’ygan maqsadlarimizga erishishimiz uchun ilhom va kuch manbai ham ekanligiga ishonamiz. Ushbu muhim tadbirning homiysi sifatida ishtirok etish orqali biz jamiyat taraqqiyoti va madaniyatlararo hamkorlikni rag’batlantiradigan sport tashabbuslarini qo’llab-quvvatlashga intilamiz. Biz barcha ishtirokchilarga qat’iyat va ishtiyoq uchun minnatdormiz, hamda g‘alabaga erishish yo‘lida barcha to‘siqlarni sizlar bilan birga yengib o‘tishga tayyormiz!
Kalleh — yuguring va marrani biz bilan birga zabt eting!
➖
Компания Kalleh приняла участие в забеге и поддержала участников 6-го международного Ташкентского марафона! 🏃🏅
Мы считаем, что спорт - это не только здоровый образ жизни, но и источник вдохновения и силы для достижения поставленных целей. Принимая участие в качестве спонсора этого важного мероприятия, мы стремимся поддержать спортивные инициативы, способствующие развитию общества и межкультурному взаимодействию. Мы благодарны всем участникам за их упорство и энтузиазм, и готовы вместе с вами преодолевать любые препятствия на пути к победе!
Kalleh - беги и достигай финиша вместе с нами!
#kallehuz#kallehpro#marathon#tashkent
Tigist Assefa Successfully Defends London Marathon Title. Yomif Kejelcha Writes New History In Men's Marathon.
Read.
https://borkena.com/2026/04/26/tigist-assefa-successfully-defends-her-london-marathon-title/#Ethiopia#sports#Marathon#running#LondonMarathon#TigistAssefa#YomifKejelcha
🚩Сегодня, 8 июня 2025, ультрамарафон Comrades стартовал в ЮАР в 08:30 по Екатеринбургу (в 06:30 по Москве) и продлится 12 часов.
На фото — команда марафонцев из Екатеринбурга, которую поддерживает Уральский горнопромышленный холдинг.
Чтобы прочувствовать атмосферу, посмотрите видео!
_______________
🚩 Today’s the day! On June 8, 2025, the Comrades ultramarathon began in South Africa at 8:30 AM Yekaterinburg time (that’s 6:30 Moscow time), and runners have up to 12 hours to finish.
Featured is the Yekaterinburg team, supported by the Ural Mining Holding (UMH).
Click to watch videos to get the feel of the event!
#sport#marathon#Comrades#Durban#Pietermaritzburg#ЮАР#спорт#марафон#Комрадс