Что делать если нужно поставить какую-то 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
#TouchDesigner, #TD
Моя мечта и цель создать инструмент для проектирования искусственных нервных схем подобно той которую можно увидеть в фильме "Ева: Искусственный разум". В фильме инженер по искусственному интеллекту используя придуманный шоураннерами редактор настройки ИИ, в основе которого граф вершины которого отражают различные психические качества и их настройки: любопытство, настойчивость, привязанность и т.д. Подобно этому в моём воображении формируется редактор в котором возможно настраивать различные области мозга и связи между ними: облсти коры, мозжечка, ментальная карта таламуса, центры потребностей и удовольствия. В поисках интерфейсных решений я наткнулся на TouchDesigner (TD), это программа для дизайнеров благодаря ей создаются различные крутые инсталляции, где требуйся динамика. Её особенность программирование с помощью специальных нод и организации связей между ними, внутри ноды может быть код или заранее подготовленный алгоритм. TD отвечает главному моему принципу - это визуализация и наглядность. Внутри каждой ноды есть отображение того, что происходит внутри неё. И конечно это работа в реалтайме, пришло врем решать задачи в реалтайме... Конечно, TD это не создан для задач машинного обучения, в нём есть некоторые ограничения для моей работы, но это будет некий прототип, где я отработаю некоторые механики. Здесь есть ноды GLSL, а значит быстрые вычисления на GPU, есть нода python и сила numpy. Во первых, я переношу некоторые свои алгоритмы в TD, пока только в начале. Это послужит началом и прообразом инструмента к которому я стремлюсь, таким же удобным и доступным как TD. Возможно сочетание с тем, что я делал в CogFLUX (https://belkinandrey.github.io/), базовые безусловные рефлексы возможно настроить на нейронах, а когнитивные вычисления на нодах более высокого порядка с заготовленными алгоритмами. Причем всё может работать совместно.
Под хэштегом #TouchDesigner и #TD буду выкладывать этот прогресс. Сейчас на видео самый простой алгоритм кластеризации из статьи https://habr.com/ru/articles/709350/
#Polonia#Sejm
Con 265 voti favorevoli e 193 contrari, Szymon #Hołownia (#TD/#Polska2050|RE) è stato eletto nuovo Presidente del Sejm (Camera bassa).
@OsservatorioEsteri
#Polonia
#KO|EPP|RE|G/EFA, #TD|RE|EPP e #Lewica|S&D hanno annunciato che presenteranno il leader di #PO|EPP Donald #Tusk come candidato a Primo Ministro.
@OsservatorioEsteri
🚀 Analyst Lance Vitanza Initiates Buy Ratings on Three Treasury Companies
Lance Vitanza from TD Cowen has initiated coverage on Nakamoto, SharpLink Gaming, and Strive with Buy ratings. According to NS3.AI, Vitanza has set price targets of $1, $16, and $26 for these companies, respectively. He suggests that these treasury firms have the potential to outperform spot crypto exchange-traded products, provided that cryptocurrency prices recover and the companies continue to increase their token holdings per share.
#LanceVitanza#TD Cowen #Nakamoto#SharpLinkGaming#Strive#BuyRating#TreasuryCompanies#Crypto#TokenHoldings#PriceTargets#BTC
#Polonia
È stata pubblicata la lista del Terzo governo di Donald #Tusk (#PO|EPP):
-Primo Ministro: Donald #Tusk (PO)
-Vicepremier e Ministro della Difesa Władysław #KosiniakKamysz (#TD/#PSL|EPP);
-Vicepremier e Ministro della Digitalizzazione: Krzysztof #Gawkowski (#Lewica/#NL|S&D);
-Ministro della Giustizia: Adam #Bodnar (#KO|EPP|RE|G/EFA);
-Ministro degli Esteri: Radosław #Sikorski (PO);
-Ministro degli Interni: Marcin #Kierwiński (PO);
-Ministra per la Società Civile: Agnieszka #Buczyńska (TD/#Polska2050|RE);
-Ministro delle FInanze: Andrzej #Domański (PO);
-Ministro del Patrimonio Statale: Borys #Budka (PO);
-Ministra dell'Industria: Marzena #Czarnecka;
-Ministra della Famiglia, del Lavoro e delle Politiche Sociali: Agnieszka #DziemianowiczBąk (Lewica/NL);
-Ministra del Clima e dell'Ambiente: Paulina #HennigKloska (TD/Polska2050);
-Ministro dello Sviluppo e della Tecnologia: Krzysztof #Hetman (TD/PSL);
-Ministro delle Infrastrutture: Dariusz #Klimczak (TD/PSL);
-Ministra dell'Uguaglianza: Katarzyna #Kotula (Lewica/NL);
-Ministra della Salute: Izabela #Leszczyna (PO);
-Ministra dell'Istruzione: Barbara #Nowacka (#iPL|RE);
-Ministro dello Sport: Sławomir #Nitras (PO);
-Ministra degli Anziani: Marzena #OkłaDrewnowicz (PO);
-Ministra dei Fondi e delle Politiche Regionali: Katarzyna #PełczyńskaNałęcz (TD/Polska2050);
-Ministro dell'Agricoltura: Czesław #Siekierski (TD/PSL);
-Ministro della Cultura: Bartłomiej #Sienkiewicz (PO);
-Ministro degli Affari Europei: Adam #Szłapka (#N|RE);
-Ministro della Scienza: Dariusz #Wieczorek (Lewica/NL);
-Ministro degli Affari Legislativi: Maciej #Berek;
-Cancelliere presso l'Ufficio del Primo Ministro: Jan #Grabiec (PO);
-Coordinatore dei Servizi di Sicurezza: Tomasz #Siemoniak (PO).
@OsservatorioEsteri