Что делать если нужно поставить какую-то 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
👍👍
🇵🇸В медицинском комплексе Шифа в городе Газа 19 апреля прошла масштабная акция протеста палестинских медицинских работников, приуроченная к «Дню палестинских заключенных».
Врачи и медсестры вышли с требованием немедленного освобождения своих коллег, которые удерживаются в израильских тюрьмах в условиях гуманитарного кризиса и отсутствия правовой защиты.
По данным Министерства здравоохранения Газы и правозащитных организаций, на сегодняшний день в израильском заключении находятся как минимум 91 медицинский работник. Большинство из них были задержаны во время рейдов на больницы или при исполнении профессиональных обязанностей.
Среди них генеральный директор больницы «Камаль Адван» доктор Хуссам Абу Сафия, директор полевого госпиталя в Рафахе Доктор Марван аль-Хамс, сосудистый хирург больницы «Камаль Адван» Хасан аль-Мкаед и многие другие выдающиеся врачи Газы.
Большинство из них удерживаются Израилем на основе Закона о «незаконных комбатантах», который лишает медиков защиты, которую гарантирует им международное гуманитарное право как гражданским лицам и медицинскому персоналу.
Участники акции также выразили глубокую обеспокоенность в связи с недавним утверждением в Израиле закона о смертной казни для палестинских заключенных. Медики призвали международные гуманитарные организации, включая Красный Крест и ВОЗ, вмешаться, чтобы предотвратить эскалацию нарушений прав человека и защитить тех, кто посвятил жизнь спасению других.
🚫Именно эти люди в наше время являются единственными, кто достоин Нобелевской премии мира. В особенности стоит отметить доктора Хуссама Абу Сафию, который до последнего исполнял свой долг, спасая жизни людей независимо от их национальности, вероисповедания или идеологии!
#GazaGenocide
🔳Детский фонд ООН (ЮНИСЕФ) заявил в пятницу, что он "возмущен" после того, как израильский огонь унес жизни водителей двух грузовиков, нанятых организацией для доставки чистой воды палестинским семьям в секторе Газа.
В заявлении ЮНИСЕФ поясняется, что инцидент произошел во время транспортировки воды в пятницу утром на водонапорной станции в районе Мансура на севере Газы, которая обеспечивает водой город Газа.
#GazaGenocide
Двое погибших палестинцев и несколько раненых в результате израильской фашистской бомбардировки района аш-Шуджайя на востоке города Газа.
#GazaGenocide
Пока мир жалеет обезьянку, дети Газы остаются незамеченными.
История японской обезьянки Панч, оставшейся без матери и нашедшей утешение в мягкой игрушке, тронула миллионы людей по всему миру. Соцсети заполнились словами поддержки и сочувствия к одинокому детенышу.
Но в это же время тысячи палестинских детей в секторе Газа потеряли родителей в результате творимого израильскими фашистами геноцида. Многие из них остаются сиротами и каждый день сталкиваются с болью утраты и условиями гуманитарного кризиса.
#GazaGenocide
Гражданская оборона в Газе сообщает о 11 погибших с утра воскресенья на фоне продолжающихся фашистских израильских бомбардировок сектора Газа.
#GazaGenocide
⭕️Представитель Красного Полумесяца в Газе в интервью газете "Аль-Гад" призывает международное сообщество оказать давление на оккупационные власти с целью доставки медицинских принадлежностей, подчеркивая, что они принимают пациентов с серьезными травмами в результате обстрелов с применением запрещенного оружия, и что их бригады сталкиваются с трудностями в доступе к пострадавшим районам.
#GazaGenocide
Палестинские журналисты Мухаммад Салах Кишта, Абд ар-Рауф Шаат и Анас Гунаим погибли в центральной части сектора Газа в результате обстрела, нанесенного израильскими фашистами.
#GazaGenocide
🇵🇸Розан Эмад Хайра, 24-летняя спортсменка из сектора Газа, потеряла ногу в результате фашистских израильских бомбардировок.
Обладательница многочисленных медалей, палестинская легкоатлетка Хайра была вынуждена завершить спортивную карьеру из-за полученной инвалидности. Сейчас она активно ищет возможность пройти лечение за рубежом, чтобы восстановить здоровье и вернуться в большой спорт.
История девушки — это не единичный случай, а часть масштабной катастрофы, которую правозащитники и спортивные функционеры называют «спортоцидом». За последние два года палестинское спортивное сообщество понесло невосполнимые потери, которые ставят под угрозу само существование профессионального спорта в секторе Газа.
По состоянию на январь 2026 года, число погибших атлетов, тренеров и спортивных функционеров в Газе превысило 800 человек. Наиболее тяжелые потери понесла футбольная ассоциация: убито более 420 игроков, четверть из которых — дети и подростки, занимавшиеся в спортивных академиях.
Те, кто выжил, зачастую остаются с тяжелыми травмами. По данным ООН, к началу 2026 года более 21 000 детей в Газе получили инвалидность. Для многих из них, как и для Розан Хайры, спорт был желанным и даже единственным способом самореализации, который теперь стал недоступен из-за отсутствия протезов и условий для реабилитации.
#GazaGenocide
Младенец Шаза Абу Джарад в Газе умерла от переохлаждения. Её смерть — горькое следствие того, что израильские фашисты сравняли с землей большинство домов сектора Газа, лишив жителей крова и элементарных средств для обогрева и защиты от зимней погоды.
#GazaGenocide
Мать успокаивает своего ребёнка, который пострадал в результате фашистской израильской бомбардировки их дома в лагере Нусейрат в сектора Газа.
#GazaGenocide
Актёр Джеки Чан рассказал зрителям на премьере своего нового фильма в Пекине, что слова палестинского ребёнка из Газы заставили его расплакаться.
Они спросили его: «Кем ты хочешь стать, когда вырастешь?» Он ответил: «Здесь дети не вырастают». Я тут же расплакался
рассказал 71-летний актёр.
Как только этот ребёнок начал говорить, я расплакалась
#GazaGenocide