Что делать если нужно поставить какую-то 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
⭐️ Quick moments in Monte Carlo 🇲🇨
📏
📏
📏
📏
📏
📏
📏
📏
🟠This famous spot in Monaco captivates with its exquisite casinos, luxurious hotels, and elite events like the Monaco Grand Prix. Glamour, stunning architecture, and breathtaking Mediterranean views make Monte Carlo a gem for travelers. A symbol of luxury and elegance, it invites you to enjoy life to the fullest.
📏
📏
📏
📏
📏
📏
📏
📏
#Monaco🇲🇨@voyage
🇲🇨🇻🇦 Il messaggio lasciato da Papa #LeoneXIV sul Libro d’Onore nel Palazzo del Principe a #Monaco: "Ringrazio Dio per avermi concesso l'opportunità di visitare il Principato di Monaco e prego per la famiglia regnante, le autorità e i cittadini, affinché ricevano abbondanti benedizioni di pace e prosperità cristiana" | “Je rends grâce à Dieu de m'avoir accordé l'occasion de visiter la Principauté de Monaco, et j'invoque pour la Famille régnante, les Autorités et les citoyens d'abondants bienfaits de paix et de prospérité chrétienne”
Diffuso il programma dettagliato del Viaggio Apostolico che Papa #LeoneXIV compirà nel Principato di #Monaco sabato 28 marzo. Si tratta del secondo Viaggio Apostolico internazionale di Papa Prevost.
Alle 7, si legge nel programma ufficiale diffuso dalla Sala Stampa della Santa Sede, è prevista la partenza in elicottero dall’eliporto di Città del Vaticano, con arrivo alle 9 all’eliporto di Monaco per l’accoglienza ufficiale. Alle 9.25 la cerimonia di benvenuto nel Palazzo del Principe di Monaco, luogo della visita di cortesia ad Alberto II, alle 9.40, con il saluto del Santo Padre.
Alle 11 il Pontefice incontrerà la comunità cattolica nella cattedrale dell’Immacolata Concezione e pronuncerà un’omelia. Alle 11.45, nell’area antistante la chiesa di Santa Devota, è in programma l’incontro con i giovani e i catecumeni, durante il quale il Papa pronuncerà un discorso.
Alle 15.30 è prevista la messa, nello stadio Louis II, cui seguirà, alle 17.35 nell’eliporto di Monaco, il congedo ufficiale. La partenza in elicottero è prevista alle 17.45, con arrivo alle 19.45 nell’eliporto di Città del Vaticano. Un viaggio lampo, appena 9 ore.
🇮🇩🇻🇦 "Accogliendo l’invito del Capo di Stato e dell’Arcivescovo del Principato di #Monaco, Papa #LeoneXIV compirà un Viaggio Apostolico nella Città-Stato il 28 marzo prossimo". Lo rende noto il direttore della Sala Stampa della Santa Sede. Il programma del Viaggio, precisano dal Vaticano, sarà reso noto a suo tempo. Il Principato, si legge sui media vaticani, rappresenta una realtà europea dove il cattolicesimo è religione di Stato e dove il dialogo tra istituzioni civili e Chiesa mantiene un rilievo concreto anche nel dibattito pubblico. Significativo anche l’impegno per la pace del Principato, che accoglierà per la prima volta un Papa in epoca moderna.
⚽️🇪🇺Champions
Monaco 2-1 Barcelona#Champions#Monaco#Barcelona
Se acabó la racha. Al sexto partido el equipo azulgrana cosechó su primera derrota de la temporada. No tuvo opción en Mónaco. La expulsión de Eric García a las primeras de cambio fue definitiva. Jugar 80 minutos en inferioridad en Champions es mortal y esta vez no fue una excepción. Es cierto que en algunos momentos pudo dar la sensación, sobre todo con el gol de Lamine, que el Barça podría hacer algo más. Pero fue un espejismo porque los franceses impusieron su poderío físico en la segunda parte con un hombre más.
https://www.marca.com/futbol/barcelona/cronica/2024/09/19/66ec915b46163f24ae8b458b.html
🏆@Info288_deportes
🏀🇪🇺Euroliga
Barcelona 86-71 Monaco#Euroliga#Barcelona#Monaco
El pasado 19 de junio el Barça hizo oficial el fichaje de Kevin Punter pero no ha sido hasta el 16 de octubre cuando el norteamericano ha demostrado, de azulgrana, por qué es uno de los mayores talentos ofensivos de la Euroliga. Jugó ante el Mónaco un partido magnífico (21 puntos y 20 de valoración) para guiar al Barça hacia su mejor victoria hasta le fecha, seguramente, ante el mejor rival al que se han enfrentado. Los azulgranas jugaron un buen baloncesto, pero sobre todo estuvieron a un nivel competitivo altísimo. Cerraron el rebote, forzaron pérdidas, corrieron siempre. Fueron un equipo compacto, sólido, con juego coral y talento individual. Fueron, ahora sí, un equipo que mete miedo.
https://as.com/baloncesto/punter-lidera-al-mejor-barca-n/
🏆@Info288_deportes
🌍 Monaco is the most densely populated country on Earth, with over 25,000 people per square kilometer. This tiny city-state squeezes more residents into each square mile than anywhere else. ✨
#population⚡#density⚡#Monaco⚡#countries⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
"Per cinque secoli, prima della fine della Seconda Guerra Mondiale, l'Occidente si era espanso: i suoi missionari, pellegrini, soldati, esploratori si riversavano dalle sue coste per attraversare gli oceani, colonizzare continenti, costruire vasti imperi che si estendevano in tutto il mondo.
Ma nel '45, per la prima volta dall'epoca di Colombo questo si stava contraendo. L'Europa era in rovina. Metà viveva dietro una cortina di ferro e il resto sembrava destinato a seguirla presto. I grandi imperi occidentali erano entrati in un declino terminale, accelerato da rivoluzioni comuniste senza Dio e da rivolte anticoloniali"
Parla il Segretario di Stato USA Marco Rubio che elogia colonialismo e cinque secoli di genocidi sparsi.
E noi cittadini occidentali che vogliamo?
Diventare soldati e pellegrini in un eterno ciclo di sopraffazione dell'uomo sull'uomo? O come dicono i cinesi costruire insieme una comunità dal futuro condiviso per l'umanità?
La palla sta noi e dobbiamo decidere se ancora una volta vogliamo essere carnefici o possiamo finalmente spezzare queste catene.
#colonialismo#USA#MarcoRubio#Monaco#UE
🐇 Segui il Capibara 🐇
🏀🇪🇺Euroliga
Baskonia 75-87 Monaco#Euroliga#Baskonia#Monaco
El Baskonia pagó este jueves una horrible primera mitad, en la que se desangró ante el Mónaco y encadenó su cuarta derrota consecutiva en la Euroliga, en un partido que fue perdiendo hasta por 27 puntos (75-87). Los azulgranas, que solo anotaron 7 puntos en el primer cuarto, reaccionaron tras el descanso y lograron bajar la diferencia hasta los 5s, pero pagaron el esfuerzo derrochado en un gran tercer asalto.
https://www.infobae.com/america/agencias/2024/11/14/75-87-el-baskonia-se-desangra-en-la-primera-mitad-ante-el-monaco/
Real Madrid 64-74 Anadolu#Euroliga#RealMadrid#Anadolu
Como si fuera un cruce directo de la Champions y en el Bernabéu... pero no. El Real Madrid peleó por una remontada imposible ante el Anadolu Efes después de ir 27 puntos abajo (18-45) en el segundo cuarto. El cansancio pudo con un ejercicio notable de fe y de carácter liderado, cómo no, por Facundo Campazzo. Se situó a un punto con cuatro minutos por delante, pero la fatiga hizo el trabajo que se les estaba escapando de las manos a los turcos. El Madrid encajó su primera derrota de la temporada como local y ya son seis tropiezos en Europa en las diez primeras jornadas.
https://www.larazon.es/deportes/madrid-roza-remontada-imposible_202411146736725eb747ad0001817a7e.html
🏆@Info288_deportes
Stamani, Papa #LeoneXIV ha ricevuto in udienza, nel Palazzo Apostolico, il Principe Alberto II di #Monaco, il quale si è successivamente incontrato con mons. Paul Richard Gallagher, Segretario per i Rapporti con gli Stati e le Organizzazioni Internazionali.
"Nel corso dei cordiali colloqui in Segreteria di Stato - si legge in un comunicato diffuso dalla Sala Stampa vaticana -, sono state sottolineate le buone relazioni bilaterali esistenti e si è fatto riferimento al contributo storico e significativo della Chiesa Cattolica alla vita sociale del Principato. Nel prosieguo della conversazione ci si è soffermati su alcune questioni di interesse comune, come la cura dell’#ambiente, l’aiuto umanitario e la difesa e la promozione della dignità della persona umana. Infine, vi è stato anche uno scambio di opinioni sull’attualità internazionale, con particolare enfasi sulla pace e la sicurezza, e sulla situazione generale in #MedioOriente e in alcune regioni dell’#Africa".
El día de ayer en el partido entre Monaco y Nantes, el mediocampista maliense🇲🇱 Mohamed Camara, tapó la bandera gay de su uniforme que la Ligue 1 incluyó como parche buscando promover la inclusión y decirle No a la homofobia🚫🏳️🌈
@Fut_planet⚜️#Monaco🇫🇷#Nantes🇫🇷#Ligue1🇫🇷#Camara⚽️