Что делать если нужно поставить какую-то 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
NEW EVENT: Gunzilla Games, OpenSea and Morningstar Ventures Networking Event🇸🇬
It was awesome to have brought together Off The Grid enthusiasts during our event in Singapore, which we co-hosted with Gunzilla Games and OpenSea.
See you at our next #OTG meetup in Dubai 💫
#OTG#web3#киберспорт
Вне сети: игра, ажиотаж и влияние на криптовалюту
Поговорим об играх! 🎮
Игровая индустрия продолжает менять финансовые модели, и Off the Grid (OTG) – новый киберпанковский шутер в жанре Battle Royale – стал ещё одним мостом между играми и криптовалютами. Проект привлёк внимание благодаря нестандартному геймплею: сочетание PvP и PvE, кастомизация персонажей с кибернетическими улучшениями и масштабный открытый мир создают условия для глубокой вовлечённости игроков.
▶️Однако самый интересный аспект игры – это её возможное влияние на индустрию блокчейна◀️
❓Как OTG меняет отношение к криптовалютам?
Ажиотаж вокруг Off the Grid показывает, как игровое сообщество становится всё более открытым к цифровым активам. Внутриигровая экономика в таких проектах уже давно функционирует по законам крипторынка: покупка и продажа предметов, уникальные скины, внутриигровая валюта – всё это отражает механизмы торговли токенами и NFT. Если разработчики реализуют блокчейн-активы в OTG, это может стать катализатором массового принятия криптовалют среди геймеров.
В отличие от множества Play-to-Earn игр, где прибыль ставится выше качества геймплея, Off the Grid предлагает полноценный AAA-экспириенс. Это важно, потому что именно успешные игровые проекты способны изменить восприятие криптовалют – не как спекулятивного инструмента, а как полноценной цифровой экономики.
❓Перспективы: новое поколение Web3-игр?
Хотя на данный момент Off the Grid не использует блокчейн, его успех может повлиять на дальнейшее развитие GameFi-сектора. Крупные издатели уже экспериментируют с интеграцией криптовалют, и подобные проекты создают фундамент для перехода к Web3-играм, где цифровые активы действительно принадлежат игрокам.
Криптовалюта и игры продолжают сближаться, и, возможно, именно такие проекты, как OTG, станут точкой входа в криптомир для миллионов новых пользователей.
❗️Следите за развитием индустрии 😏– подписывайтесь на наш канал!
___________
@MirraChannel😎
Off the Grid Messenger
Off The Grid (OTG) Messenger is an easy way for people to communicate through text messages when in remote areas. With a theoretical transmission range of 10 miles (16kms), OTG messenger can be used by groups of people to stay connected when they are in areas not serviced by mobile connectivity.
For portability and low power purposes, the device was created by re-purposing an old Nokia e63 phone I had laying around. The enclosure, LCD, keypad, backlighting and speaker have been re-used however the motherboard was re-designed from the ground up with low power components, a modern STM32 H7 microcontroller, an ISM LoRA radio and expanded flash memory.
https://github.com/TrevorAttema/OTGMessenger
Comments
https://news.ycombinator.com/item?id=27659105
#otg#offthegrid#grid#im#messenger#alternatives#cellphone#mobile#nokia