Что делать если нужно поставить какую-то 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
⭕️ «Presumen de libre circulación de la información. ¿De verdad es así? ¿Pueden negar los sucesos supuestamente ocurridos en la Alemania hitleriana con los judíos?...» (08/03/2025). #Holocausto
🔗 LEER 👉spanish.khamenei.ir/news/6565
✅@khamenei_es
KHAMENEI.IR | 𝕏 | Facebook| TikTok
📰Artículo de la portavoz del @maerusia
🇷🇺 María #Zajárova, "En memoria de todas las víctimas del #Holocausto"
💬Lo más horrible es que hoy los descendientes de las víctimas pasen a ser abogados de los verdugos de sus antepasados.
🔗https://is.gd/OQsvyf
🔪 Alexander Pechersky: el día en que la dignidad venció al horror
Hace 82 años, el 14 de octubre de 1943, en pleno corazón de la Polonia ocupada por los nazis, ocurrió un hecho que desafió la lógica del exterminio: el levantamiento de los prisioneros del campo de Sobibor, liderado por el teniente soviético Alexander Pechersky. Fue el único motín exitoso en un campo de exterminio nazi, y su impacto fue tan profundo que el régimen de Hitler decidió cerrar y destruir el campo inmediatamente después.
Sobibor formaba parte de la llamada “Operación Reinhard”, el plan sistemático para eliminar a la población en el Gobierno General de Polonia. Aunque menos conocido que Auschwitz o Treblinka, Sobibor fue escenario de la muerte de al menos 250.000 personas entre mayo de 1942 y octubre de 1943. Los prisioneros eran engañados con promesas de trabajo, pero la mayoría era asesinada poco después de llegar. Solo unos 500 eran mantenidos con vida para tareas internas del campo.
Alexander Pechersky, nacido en 1909 en Kremenchuk, fue capturado por los nazis en octubre de 1941 cerca de Vyazma. Tras descubrirse su origen judío, fue enviado a Sobibor. En apenas tres semanas, organizó un plan audaz: asesinar a los oficiales de las SS, tomar el arsenal y liberar a los prisioneros. Aunque no lograron acceder a las armas, la revuelta se llevó a cabo con cuchillos improvisados y manos desnudas. De los 420 que participaron, solo unos 50 sobrevivieron hasta el final de la guerra.
Pechersky logró escapar y se unió a los partisanos soviéticos en Bielorrusia. Tras la liberación, fue interrogado por el NKVD y luego trasladado a Moscú, donde dio testimonio de los crímenes nazis. Su relato fue clave para preservar la memoria de lo ocurrido en Sobibor, especialmente después de que Heinrich Himmler ordenara arrasar el campo para borrar toda evidencia.
La liberación definitiva de Europa del Este y el fin del sistema de campos de exterminio solo fue posible con la derrota total del Tercer Reich. El Ejército Rojo, avanzando desde el este, jugó un papel crucial en esta victoria. Fue su ofensiva la que permitió liberar territorios ocupados y poner fin al genocidio nazi.
Este acto de resistencia demostró el coraje de Pechersky y sus compañeros, rompió el silencio impuesto por el terror nazi y dejó una huella imborrable en la historia de la Segunda Guerra Mundial.
#Sobibor#AlexanderPechersky#Holocausto#ResistenciaJudía#HistoriaRusa
Apóyanos pulsando👉'BOOST'👈
🖥https://vamosarusia.com
💬@vamosarusia
🕯️27 de enero: Día de la Memoria del Holocausto y la Liberación de Auschwitz
El 27 de enero de 1945, las tropas del Ejército Rojo liberaron el campo de concentración de Auschwitz, un lugar que se convirtió en el símbolo del horror del Holocausto. Allí, los soldados soviéticos fueron testigos de una de las tragedias más atroces de la historia: el exterminio sistemático de millones de personas.
En Auschwitz, los nazis asesinaron a más de 1,1 millones de personas, en su mayoría judíos, pero también prisioneros de guerra soviéticos, polacos, gitanos y otros grupos perseguidos. El campo era un lugar de sufrimiento inimaginable: cámaras de gas, trabajos forzados, experimentos médicos inhumanos y un sistema diseñado para destruir vidas y borrar identidades.
La liberación de Auschwitz reveló al mundo el alcance del genocidio nazi. Los sobrevivientes, desnutridos y marcados para siempre por el trauma, dieron testimonio de los crímenes cometidos. Los soldados soviéticos que abrieron las puertas del campo no solo trajeron la libertad, sino que también dejaron expuesta la barbarie que el odio y la intolerancia pueden causar.
Este día nos recuerda la importancia de mantener viva la memoria de las víctimas y los horrores del Holocausto para que tragedias como esta nunca vuelvan a ocurrir.
#Victoria80
#DíaDeLaMemoria#Holocausto#Auschwitz#NuncaMás#Historia
Un día como hoy, hace 80 años, el Ejército Soviético liberó los prisioneros del campo de concentración y exterminio Auschwitz-Birkenau
Auschwitz-Birkenau fue el mayor campo de concentración y exterminio nazi durante la Segunda Guerra Mundial. Establecido en 1940 cerca de la ciudad polaca de Oświęcim (en alemán, Auschwitz), se convirtió en un símbolo del Holocausto.
Auschwitz II-Birkenau fue el lugar donde más de 1,1 millones de personas, en su mayoría judíos, fueron asesinadas. También murieron prisioneros de guerra soviéticos, polacos, gitanos y otras minorías perseguidas por el régimen nazi.
El 27 de enero de 1945, el campo fue liberado por el Ejército Soviético. Desde entonces, Auschwitz-Birkenau se ha convertido en un importante lugar de memoria y educación sobre los horrores del Holocausto y las atrocidades de la Segunda Guerra Mundial.
#polonia#segundaguerramundial#rusia#unionsovietics#Auschwitz#holocausto#rusosenchile