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 слични објави

Пребарај: #omofobia

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

@savinobalzano · Post #720 · 08.08.2024 г., 08:26

https://x.com/SavinoBalzano/status/1821461688287117818?t=HzbLqxCY92zUNB9Gsw6NKw&s=19 Sulla #Rai e sulle nomine si sta consumando l’ennesimo teatrino, il solito spettacolo con l’#opposizione impegnata a interpretare la parte più ipocrita. In effetti lo schema è sempre lo stesso: fanno macelli su macelli mentre sono al #governo, per poi addossare a chi viene dopo la responsabilità del loro servilismo e della loro inettitudine. Alla Rai serve una riforma che la emancipi dalle imposizioni dei partiti, della lottizzazione, dallo spoils system. Viceversa, a rischio sarebbe nientepopodimeno che la democrazia, la #libertà di espressione, il pluralismo. Francamente non avrei alcuna difficoltà a ragionare di una riforma del #ServizioPubblico: ciò che trovo insopportabile è l’ipocrisia di chi ha sempre (compresi i purissimi del #M5S) banchettato grazie alle regole attuali, per poi frignare quando quelle regole vengono applicate da altri. Peraltro, quelle stesse regole le ha scritte il #PD di #Renzi, quando era al governo nel 2015 (e che governo! Stendiamo un velo pietoso). Dov’era il rischio per la #democrazia quando a dettare le regole erano loro? Dov’era lo scandalo quando al governo c’era #Draghi, l’unto del Signore, insieme ai suoi migliori? Dov’era il pericolo per il democratico racconto pubblico quando in sala stampa i giornalisti si genuflettevano e applaudivano (letteralmente!) al messia? Oggi a chiederlo sarebbe l'#Europa: il tempismo è alquanto curioso, ma c'era da aspettarselo. Male ha fatto, malissimo, chi nell'esecutivo (il partito di maggioranza relativa in primis) ha ingenuamente ritenuto di poter addomesticare la tigre e di poter persino partecipare alla battuta caccia senza diventare la preda. Lo schema è sempre lo stesso: tagliano quasi 40 miliardi di euro alla #sanità in dieci anni e oggi si struggono per le liste d’attesa negli ospedali; precarizzano il mondo del #lavoro fino al midollo, prima sostenendo #Monti (altro governo che se potessimo dovremmo dimenticare) e poi Renzi, e oggi si percuotono il petto per i contratti a termine e i salari bassi; lustrano gli stivali all’#Ue (ingannando gli italiani con la promessa che lavoreranno meno e guadagneranno uguale se non di più) e poi si stracciano le vesti perché non c’è il becco di un quattrino per la #scuola, l’#università, il #TrasportoPubblico, lo stato sociale in generale. Uno schema insopportabile, tollerato e supportato da grandissima parte dell’#informazione politicamente corretta (è in questo senso che va letto il rischio per libertà di stampa!) col solito vecchio metodo: celare, dissimulare, occultare le gravissime responsabilità di chi ha sempre governato nell’ultimo decennio, nel maldestro tentativo di addossarle integralmente sulle spalle di chi governa ora. E quando il gioco non riesce, c’è sempre il pericolo #fascismo, #estremismo, #antieuropeismo, #qualunquismo, #populismo, #omofobia e chi più ne ha più ne metta. #GiorgiaMeloni, dal suo lato, la smetta di fare la docile gattina con #UrsulaVonDerLeyen, perdonandole ogni cosa e scusandosi anche per il nulla: la faccia finita con questi occhi dolci da sottona scaricata! Provi piuttosto ad assumere un atteggiamento più inclusivo con tutti gli alleati di governo, a partire da quelli che teme di più: al centro ci sia l’interesse nazionale e la dignità del Paese che non può e non deve essere descritto come la patria dei barbari ogni qualvolta al governo non siedono i liquidatori al soldo di #Bruxelles.