Что делать если нужно поставить какую-то 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
⚽ Passiamo per un attimo ad argomenti più leggeri, stasera c'è la semifinale di Champions League #Milan-#Inter, ma quale delle due ha più tifosi nella provincia di Milano, secondo voi?
⚡️Fanton EN: Join the Exciting Grand Final Events!
#PSG#Inter
Fanton EN announces the grand final evening with multiple tournaments featuring PSG vs Inter. Participants can win from a variety of prizes, including a $50,000 prize pool and a legendary NFT card. Don't miss the excitement as Dembélé prepares for the event.
Source: link
@tonlines
⚡️JetTon Games RU: Bayern vs Inter Clash
#Bayern#Inter
Bayern Munich will face Inter Milan in the UEFA Champions League on April 16. JetTon Games RU highlights the excitement as Bayern, led by stars like Leroy Sane and Joshua Kimmich, is set to challenge Inter at their home ground in Munich.
Source: link
@tonlines
Ocurrió en los festejos del Inter de Milán por la Serie A: Marcus Thuram comenzó a cantar junto a los hinchas del Inter: "El que no salta es 'bianconeri'. Su padre, Lilian Thuram, quién jugó en la Juve, se acercó a él y le pegó.
MOMENTAZO. 🤣🏆
@Fut_planet⚜️#Thuram⚽️#Inter🇮🇹
⚽️🇪🇺Champions
Manchester City 0-0 Inter#Champions#ManCity#Inter
El nuevo formato de la Champions ha llegado para protagonizar este tipo de partidos. En 2023, el Manchester City levantó su primera 'Orejona' derrotando al Inter por la mínima en Estambul. En está ocasión, los 'nerazzurri' mantuvieron a raya al conjunto 'citizen' y terminaron sacando un valioso empate (0-0) del inexpugnable Etihad.
https://www.marca.com/futbol/champions-league/cronica/2024/09/18/66eb1f8122601d3a188b45e3.html
Otros marcadores
Bolonia 0-0 Shakhtar
Sparta Praga 3-0 Salzburgo
Celtic 5-1 Slovan Bratislava
Brujas 0-3 Dortmund
🏆@Info288_deportes
⚽️🇪🇺Champions
Inter 1-0 Arsenal#Champions#Inter#Arsenal
Un disparo a puerta, y de penalti, le bastó al Inter para derrotar al Arsenal en Milán. Los de Inzaghi, que están con 10 puntos tras cuatro jornadas, ya empataron ante el City y demuestran que son rival para cualquier conjunto de Europa. Supieron resistir ante un Arsenal que creció con el paso de los minutos pero se quedó vacío de cara al arco rival. Sin Odegaard (entró para los cinco minutos finales), cuesta más.
https://www.marca.com/futbol/champions-league/cronica/2024/11/06/672bc89a46163fa6818b4598.html
Otros marcadores
Brujas 1-0 Aston Villa
Shakhtar 2-1 Young Boys
Bayern 1-0 Benfica
Feyenoord 1-3 Salzburgo
Sparta Praga 1-2 Brest
Stuttgart 0-2 Atalanta
🏆@Info288_deportes
⚽️🇮🇹Serie A
Detenidos decenas de ultras del Inter y el Milan, acusados de extorsionar a los directivos de ambos clubes#SerieA#Inter#Milan
La policía italiana ha detenido a 19 aficionados radicales del Inter de Milán y del Milan en el marco de una operación en la ciudad italiana para terminar con las operaciones de ambos grupos. Entre las personas investigadas, se encuentran dos de los máximos representantes de cada grupo ultra Luca Lucci (Milan) y Renato Bosettihan (Inter de Milan).
Según han informado las autoridades italianas y ha recogido 'ANSA' los arrestos se han producido tras la detención de Andrea Beretta por el asesinato de Antonio Bellocco. A los aficionados más radicales se les imputan varios delitos relacionados con extorsiones a los directivos de ambos clubes en el proceso de la venta de entradas y otros delitos graves.
«Desde las primeras horas de esta mañana está en marcha una gran operación de la Policía de Estado y la Guardia de Finanzas, coordinada por la Dirección Antimafia de la Fiscalía de Milán», han expresado las autoridades en un comunicado.
Más allá de la intervención y las detenciones, se han llevado a cabo diferentes registros en los domicilios de los aficionados más radicales de ambos conjuntos.
https://www.abc.es/deportes/futbol/detenidos-decenas-ultras-inter-milan-acusados-extorsionar-20240930134253-nt.html
🏆@Info288_deportes
⚽️🇮🇹Serie A
Inter 1-2 Milan#SerieA#Inter#Milan
Dicen que en el sótano del fracaso siempre hay una planta más. A eso se enfrentaba hoy el Milan, que podía sumergirse en una importante crisis deportiva de haber caído ante el rival de su propia ciudad. La presión estaba del lado de los de Fonseca, cuyo futuro en el banquillo rossoneri pasaba por una buena actuación de su equipo hoy. No ha sido así, porque no han jugado bien, pero poco le importará a sus aficionados, que tiñen de rojo la ciudad italiana hasta el próximo 'Derby della Madonnina'.
https://www.marca.com/futbol/liga-italiana/cronica/2024/09/22/66f0853c22601d742e8b457f.html
🏆@Info288_deportes
⚽️🇮🇹Serie A
Inter 4-4 Juventus#SerieA#Inter#Juventus
El fútbol italiano siempre se ha caracterizado por priorizar la defensa sobre el ataque con muy pocos goles, comúnmente conocido como 'catenaccio'. En el día de hoy, Inter de Milán y Juventus han hecho todo lo contrario, y han protagonizado una tormenta de goles que ha terminado con el definitivo 4-4. Cuando mejor estaban los de Simone Inzaghi, apareció el recién entrado Yildiz que fue un halo de luz esperanzadora para los de Thiago Motta, que terminaron mejor el partido.
https://www.marca.com/futbol/liga-italiana/cronica/2024/10/27/671e8e4222601d9d408b456c.html
🏆@Info288_deportes
⚽️🇮🇹Serie A
Conmoción en Italia: Bove, de la Fiorentina, se desploma en el partido contra el Inter#SerieA#Fiorentina#Inter
Durísimas imágenes las que llegan desde Italia. Durante el encuentro, el jugador de la Fiorentina Edoardo Bove ha caído desplomado y sin conocimiento en el campo en el minuto 17 en el partido ante el Inter de Milán.
Los servicios médicos ingresaron rápidamente al terreno de juego para atenderle y los jugadores formaron un círculo a su alrededor para evitar que se viera a su compañero. El árbitro ha suspendido el partido por emergencia médica y se reanudará en una fecha posterior, ya que la situación parece muy grave. La Lega Serie A comunicó que "una ambulancia se llevó al jugador, estamos esperando noticias"
Por el momento, Bove respira de forma independiente, pero aún no está consciente. Se encuentra en el hospital policlínico Careggi de Florencia. Una vez fue trasladado el futbolista italiano, los jugadores entraron en los vestuarios, la mayoría de compañeros suyos del Fiorentina especialmente impactados y algunos entre lágrimas. Federico Dimarco o Nicolo Barella, del Inter, ayudaron en lo posible a las asistencias médicas para acelerar el proceso de traslado con su compañero de selección.
https://www.marca.com/futbol/liga-italiana/2024/12/01/conmocion-italia-bove-fiorentina-desploma-partido-inter.html
🏆@Info288_deportes