Что делать если нужно поставить какую-то 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
Игбал Абилов из заточения
Игбал передаёт Салам из 12-го исправительного учреждения. Говорит, что в порядке, и вы тоже, берегите себя. Там он читает, пишет, работает над новыми произведениями и новыми книгами.
Игбал ещё раз говорит, что заточение не является преградой для учёного с его самодеятельностью.
#freeigbalabilov
Bə kanali nomžəj bej
@talysh_region_news
🔤 EN
Igbal Abilov’s response to the latest video about him released by Baku TV.
The full statement is attached .
—
🔤RUS
Ответ Игбала Абилова на последний видеоматериал о нём, подготовленный Baku TV.
Полный текст — в прикреплённом изображении.
⸻
#FreeIgbalAbilov#ScienceIsNotACrime
🔤 EN
Igbal’s Address on the Occasion of International Mother Language Day
⸻
🔤RUS
Обращение Игбала в связи с Международным днём родного языка
#FreeIgbalAbilov#ScienceIsNotACrime
🔤 EN
The European Parliament has adopted a resolution calling for the immediate release of Igbal.
Yesterday, on 17 December, during a plenary session of the European Parliament, several political groups (EPP, S&D, ECR, Renew Europe, and the Greens/EFA) submitted a joint motion condemning the arbitrary detention and sentencing of Igbal Abilov and Bahruz Samadov.
The resolution demands their immediate release, an end to repression against the opposition, journalists, and activists, and calls on the EU to impose sanctions on the officials responsible.
It also specifically emphasizes that any future partnership agreement with Azerbaijan must be accompanied by tangible progress in the field of human rights, including the release of political prisoners, the rule of law, and respect for EU values and principles.
The resolution was adopted with 477 votes in favor, 7 against, and 69 abstentions.
You can read about the resolution here.
⸻
🔤RUS
Европейский парламент принял резолюцию с требованием немедленного освобождения Игбала.
Вчера, 17 декабря, на пленарном заседании Европарламента несколько групп депутатов (PPE, S&D, ECR, Renew Europe и Verts/ALE) подали совместное ходатайство, осуждающее произвольное задержание и приговор Игбала Абилова и Бахруза Самадова.
В резолюции требуют их немедленного освобождения, прекращения репрессий против оппозиции, журналистов и активистов, а также призывают ЕС ввести санкции против ответственных чиновников.
Отдельно подчеркивается что любое будущее соглашение о партнерстве с Азербайджаном должно сопровождаться ощутимым прогрессом в области прав человека, включая освобождение политических заключенных, верховенства права и уважения ценностей и принципов ЕС.
Резолюция была принята 477 голосами "за", 7 голосами "против" и 69 воздержавшихся.
Вы можете ознакомиться с текстом резолюции здесь.
#FreeIgbalAbilov#ScienceIsNotACrime
🔤 EN
We would like to thank everyone who responded to the campaign for Igbal’s birthday. It meant so much to receive letters from all over the world — from people who may not know Igbal personally, yet whose hearts resonated with his story.
We would also like to express our special gratitude for the acts of support coming from Belarus and Azerbaijan.
And also for the recitation of the poem and the performance of the march dedicated to Igbal 🙏
⸻
🔤RUS
Мы бы хотели поблагодарить всех откликнувшихся на акцию к дню рождения Игбала. Очень приятно было получить письма с разных уголков мира от людей, не знакомых с Игбалом лично, но в чьих сердцах отозвалась его история.
Отдельно благодарность за акции поддержки из Беларуси и Азербайджана!
А также за воспроизведение стиха и марша, посвященные Игбалу 🙏
#FreeIgbalAbilov#ScienceIsNotACrime
🔤 EN
Today Igbal is celebrating his 36th birthday!
We’re sharing his letter with you.
And you can also write to him at [email protected].
⸻
🔤RUS
Сегодня Игбал празднует свой 36 день рождения!
Мы делимся с вами его письмом!
И вы также можете написать ему на [email protected].
#FreeIgbalAbilov#ScienceIsNotACrime
🔤 EN
Exactly 500 days have passed since Igbal's illegal arrest!
⸻
🔤RUS
Ровно 500 дней прошло с момента незаконного ареста Игбала!
#FreeIgbalAbilov#ScienceIsNotACrime
🔤 EN
Before his transfer to a new facility, Igbal managed to send a letter from Umbaki.
We are attaching it to this post.
⸻
🔤RUS
Перед этапированием в новое учреждение Игбал успел направить письмо из Умбаки.
Прикрепляем его к этому посту.
#FreeIgbalAbilov#ScienceIsNotACrime
🔤 EN
Today, Igbal was transferred to Correctional Facility No. 12 in Baku.
Meanwhile, according to paragraph 17.1, part 2 of the European Prison Rules adopted by the Committee of Ministers of the Council of Europe (of which Azerbaijan is a member and therefore bound by the relevant obligations), “Prisoners shall be allocated,
to prisons close to their homes or places of social rehabilitation.”
Earlier, the hearings of the first instance were held in the Lankaran Court for Serious Crimes, even though Igbal was held in a pre-trial detention facility in Baku. This was explained by the fact that he had been arrested in the city of Masalli, and therefore, the case was to be heard by the territorially closest court.
Following the same logic, his parents submitted an appeal to the Deputy Minister of Justice of Azerbaijan, Mirsaleh Seyidov, requesting that the place of imprisonment be designated in a facility located closest to the place of arrest — and, consequently, to their home.
However, the decision made turned out to be inconsistent and raises questions about the arguments previously used during the trial.
⸻
🔤RUS
Сегодня Игбал был этапирован в Учреждение для отбывания наказания №12 в г. Баку.
Между тем, согласно пункту 17.1 части 2 Европейских пенитенциарных правил, утверждённых Комитетом министров Совета Европы (членом которого является Азербайджан и несёт соответствующие обязательства), «заключённые должны направляться для отбывания наказания в пенитенциарные учреждения, расположенные вблизи от дома».
Ранее судебные заседания первой инстанции проходили в Ленкоранском суде по тяжким преступлениям, хотя Игбал находился в следственном изоляторе в Баку. Тогда это объяснялось тем, что задержание произошло в г. Масаллы, и, следовательно, дело должно рассматриваться в территориально ближайшем суде.
По этой же логике родители направили обращение заместителю министра юстиции Азербайджана Мирсалеху Сейидову с просьбой определить место отбывания наказания в учреждении, наиболее близком к месту задержания, а значит — и к дому.
Однако принятое решение оказалось непоследовательным и ставит под сомнение ранее приведённые аргументы, использованные при рассмотрении дела.
#FreeIgbalAbilov#ScienceIsNotACrime
🔤RUS
Письмо Игбала Абилова вызвало большой общественный интерес и было опубликовано во многих средствах массовой информации.
Ниже мы приводим все ссылки, а начать советуем со статьи Institute for Human Rights, в которой подробно проанализирована суть проблемы, поднятой Игбалом в своём письме.
📎Institute for Human Rights
Также материал был опубликован в:
Colisee, Meydan TV, JamNews, ToplumTV, Abzas Media, Hamam Times, 24 saat.
📎Colisee
📎 Meydan TV
📎JamNews
📎ToplumTV
📎Abzas Media
📎Hamam Times
📎24 saat
⸻
🔤 EN
Iqbal Abilov’s letter has sparked significant public interest and was published by numerous media outlets.
Below is a list of all the publications. We recommend starting with the article by the Institute for Human Rights, which provides a detailed analysis of the core issue Iqbal raised in his letter.
📎Institute for Human Rights
The letter was also featured by:
Colisee, Meydan TV, JamNews,, ToplumTV, Abzas Media, Hamam Times, 24 saat.
📎Colisee
📎 Meydan TV
📎JamNews
📎ToplumTV
📎Abzas Media
📎Hamam Times
📎24 saat
#FreeIgbalAbilov#ScienceIsNotACrime
🔤 EN
The hearing has concluded. The court upheld the decision of the first instance. Next, Igbal is expected to be transferred to a correctional facility, and the lawyers will prepare the documents to be submitted to the Supreme Court of the Republic of Azerbaijan.
⸻
🔤RUS
Заседание завершилось. Суд оставил решение суда первой инстанции в силе. Далее ожидается перевод Игбал в ИТК. А адвокаты подготовят документы для направления в Верховный суд АР
#FreeIgbalAbilov#ScienceIsNotACrime
🔤 EN
The court hearing has begun at the Shirvan Court of Appeal.
⸻
🔤RUS
Началось судебное заседание в Апелляционном суде г.Ширван
#FreeIgbalAbilov#ScienceIsNotACrime