TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #210 · 3 фев.

Что делать если нужно поставить какую-то 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

Резултати

Пронајдени 1 слични објави

Пребарај: #pertini

当前筛选 #pertini清除筛选
Savino Balzano

@savinobalzano · Post #727 · 23.08.2024 г., 08:40

https://x.com/SavinoBalzano/status/1826902126892650501?t=Nph5MkcjigQSaPyF7ltyrA&s=19 Parlava agli operai dell'Italsider di Savona, #Pertini, con un discorso tanto toccante e appassionato da essere quasi insopportabile oggi, allo sguardo di chi può guardare indietro, con la consapevolezza di quanto sia stato tradito e disatteso. Si rivolgeva ai giovani, ai lavoratori e invitava tutti alla lotta, alla difesa, alla rivendicazione. Si perché Pertini sapeva benissimo che la #libertà senza giustizia sociale è cosa vana. Cos'è la libertà senza giustizia sociale? Si domandò retoricamente in un famoso discorso di fine anno da #PresidenteDellaRepubblica: è libertà di bestemmiare, nulla di più. Ecco cosa rispose. Era garante del vincolo interno, Pertini, della #Repubblica, della #Costituzione. Tutto ciò che oggi non è il #Quirinale. Oggi al Quirinale si inciucia coi Presidenti della Commissione Europea per disarcionare "dolcemente" un capo di governo inviso agli eurocrati di #Bruxelles o si pone il veto su quel ministro sgradito alle élite finanziarie eurounitarie. In questo Paese è diventato impossibile tutelare l'interesse nazionale: tale impegno è considerato quasi reazionario, nella accezione più negativa del termine. Il punto è che oggi essere reazionari è letteralmente doveroso: una reazione a chi vuole continuare a spolpare le nostre risorse è semplicemente l'unica cosa sensata da fare. Pertini si definiva orgogliosamente riformista. Era giusto: lo faceva quando certi presidi non erano ancora stati conquistati. Oggi forse non ha più senso, se non nella misura in cui la riforma coincida con la restaurazione. Viceversa, è corretto definirsi conservatori se si vuole ciò che voleva Pertini: libertà e giustizia sociale. Il gioco di prestigio è stato proprio questo: dividere i #diritti dopo aver diviso le persone. Contrapporre libertà a diritti sociali, abbandonando l'eversività del programma costituzionale, sancito in particolar modo nell'articolo 3, che più di ogni altro seppe conciliare le anime del Paese: la laburista ("partecipazione dei lavoratori") e la cristiana democratica ("sviluppo della persona umana"). Ciò è stato possibile quando chi storicamente aveva il compito di tutelare i fragili, le periferie sociali ed esistenziali, il mondo del lavoro, ha tradito. Ed è proprio per (mal)celare quel tradimento che si sventola ossessivamente e grottescamente la bandiera arcobaleno intonando un'ormai stonata "bella ciao". È l'imbarazzo di chi non può ammettere di aver "torto il volto" da una storia, da dei valori, da determinati ideali, da una prospettiva, a indurre certe messe in scena grottesche. Lo spettacolo sgredevole cui si assiste è frutto di una necessità imprescindibile: provare a dissimulare il fatto che nel Paese vi sia qualcuno che non persegue l'interesse del #popolo italiano, ma quello di qualcun altro. Un'agenda sociale non può esistere, dopotutto partiti come il #PD non l'hanno mai perseguita quando hanno guidato il Paese, perché la priorità per alcuni è quella di agevolare determinati centri di potere, mediante le politiche economiche neoliberali volute a Bruxelles (e non solo). Oggi si urla al #fascismo, mitizzando "intellettuali" completamente vuoti, ma se soltanto le forze di opposizione abbandonassero (cosa impossibile) il ruolo di servitù o di utile idiozia il pericolo diverrebbe quello del ritorno allo stalinismo o qualcosa del genere. Ecco perché è fondamentale aprire gli occhi e comprendere che gli ideali esistono, mentre non esiste più la tradizionale contrapposizione partitica da essi sottesa. Non ha dunque alcun senso il demenziale sostenere per affezione una parte, con la consapevolezza che appena arrivata al potere svenderà ciò che vi è più caro. E ragionarci da un Paese come la #Grecia è assai più amaro: qui il #neocolonialismo e l'avido sciacallaggio europeo lo hanno pagato letteralmente con la vita.