Что делать если нужно поставить какую-то 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
🇺🇸🛩🇮🇷El 'Warthog' no tiene sustituto: Irán reaviva la polémica sobre la retirada o no de este ícono de la Guerra Fría
La Fuerza Aérea de EEUU ha decidido prolongar la vida a uno de sus aviones más icónicos: el A-10 Thunderbolt II, apodado como Warthog. Aunque estaba previsto retirarlo en 2027, seguirá operativo al menos hasta 2030, en una decisión que refleja tanto necesidades militares inmediatas como tensiones estratégicas de fondo.
Y es que este avión, en servicio desde 1976, ha demostrado ser clave en el conflicto con Irán. Su capacidad de apoyo cercano —especialmente contra objetivos terrestres y navales— lo mantiene vigente, incluso en una guerra moderna dominada por tecnología avanzada. De hecho, ha sido utilizado recientemente en la operación de rescate de un piloto estadounidense y en ataques contra embarcaciones iraníes en el estrecho de Ormuz.
Sin embargo, su continuidad no está exenta de polémica. Dentro del Pentágono, algunos consideran que es lento, costoso de mantener y poco adecuado frente a amenazas más sofisticadas. Aun así, eliminarlo sin un reemplazo claro podría dejar un vacío crítico en el apoyo a tropas en tierra.
Por eso, los legisladores han bloqueado repetidamente su retirada, argumentando que sigue siendo insustituible. En el fondo, el Warthog simboliza un dilema mayor: cómo equilibrar la modernización militar con las exigencias de conflictos reales que aún demandan capacidades clásicas.
#Arsenal
#A10#Thunderbolt
#EEUU
Opina y comparte @ATodaPotencia🚀
🇺🇸🛩 La historia del "Thunderbolt II" biplaza: sí, se trataba de un ejemplar único
En estas imágenes aparece el único avión de ataque biplaza Fairchild Republic A-10 Thunderbolt II, conocido como YA-10B, que se creó a finales de los años 70 como variante experimental para la Fuerza Aérea de EEUU.
En marzo de 1979, uno de los A-10A de preserie fue devuelto a la fábrica de Fairchild Republic para ser reconvertido en una variante biplaza. El avión recibió la designación A-10 N/AW (Night/Adverse Weather) y estaba destinado a operaciones nocturnas y en condiciones meteorológicas adversas.
El diseño se reformó considerablemente:
🔹 Se modificó la parte delantera del fuselaje para incorporar un segundo asiento con controles duplicados para el operador de los sistemas de guerra electrónica.
🔹 La carlinga pasó a ser de dos piezas, con apertura lateral.
🔹 El avión se equipó con asientos eyectables ACES II.
🔹 Se le dotó de indicadores HUD modernizados y un sistema de aviónica ampliado.
Para el cumplimiento de misiones nocturnas, se añadieron un sistema de visión por infrarrojos, un sistema de cámaras para operar en condiciones de baja luminosidad, un telémetro láser, un radar de seguimiento del terreno, un sistema de navegación inercial, un radioaltímetro y un mapa electrónico del terreno.
Parte del equipo se alojaba en contenedores suspendidos. También se aumentó la altura de los estabilizadores verticales en 50 cm, y se redujo la munición del cañón GAU-8/A Avenger a 750 proyectiles.
Las pruebas comenzaron el 23 de octubre de 1979 en la base de Edwards e incluyeron 28 vuelos con una duración total de unas 49 horas, un tercio de los cuales se realizaron de noche. A pesar de los resultados satisfactorios, el programa se cerró debido a la aparición de sistemas de combate nocturno más modernos.
Posteriormente, el avión recibió la designación YA-10B y quedó como único ejemplar. También se barajó la idea de crear una versión de entrenamiento —A-10B—, pero nunca llegó a materializarse.
El propio A-10 Thunderbolt II voló por primera vez en 1972 y entró en servicio en 1977. Se diseñó como un avión de ataque especializado para el apoyo directo a las tropas y sigue siendo un avión único en su clase dentro de la Fuerza Aérea de los Estados Unidos.
#Arsenal#A10
#Thunderbolt#HistoriasMilitares
Entérate y comparte @ATodaPotencia🚀