Что делать если нужно поставить какую-то 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
🖊OPINION | Amnesty International Defends US Regime-change NGOs in Venezuela, Nicaragua, and Cuba
John Perry and Roger Harris tackle Amnesty International's disingenuous defense of NGOs with a history of involvement in regime-change efforts.
This opinion piece questions the credibility of Amnesty International’s latest report, citing its limited sample size and failure to address US funding flows through USAID and National Endowment for Democracy in Latin America.
Learn more here 👉https://shorturl.at/exFOv
#AmnestyInternational#HumanRights#NGOs
Currently we are witnessing arrest of creator of main digital privacy respecting messenger Pavel Durov.
WHY THIS MATTERS:
With over 950 million users, Telegram is one of the last products with respect to digital privacy. Holding Durov accountable for content shared by users or for protecting user data from authorities sets a dangerous precedent moving on for everyone that wants to create a privacy first solutions. This is not just about one person. It’s about safeguarding the right to privacy for all of us as a collective.
This action is a serious threat to the fundamental right to privacy in the digital age. Telegram has been a vital tool for millions around the world, ensuring freedom of speech and protecting our personal data, as well as providing the outlet to freely share opinions and information from unwarranted intrusion.
WHAT CAN YOU DO:
We need to raise our voices and demand justice. Write to Amnesty International at [email protected] and urge them to support Pavel Durov and advocate for his release. Amnesty has a powerful voice on global platform and has been instrumental in defending human rights across the world. If we unite and work together by sending our concerns to them with requests, we will get justice to work.
Let’s stand together for our fundamental digital rights and make sure this doesn’t go unnoticed. 🛡️
#Repost to other places and channels in order to reach broader masses and communities, so we can get more gravitas in order to protect human right to digital privacy
We as humans are stronger and louder in unity and mass.
Line for Enquiries: [email protected]
Mail template: https://telegra.ph/Amnesty-Mail-Template-08-25
#FreeDurov#PrivacyMatters#DigitalRights#AmnestyInternational
Друзья!
Приглашаем вас поучаствовать в благотворительном забеге в поддержку политзаключённых - международной инициативе проекта "Ты не один".
В Риме забег пройдет в парке Villa Pamphili, где растёт памятная олива Алексея Навального.
Мы будем ждать вас в субботу 1 ноября у входа в парк со стороны via della Nocetta в 12:00.
Для тех, кто сочетает ЗОЖ с Dolce Vita, будут печеньки и просекко 🥂
Если вы не бегаете - можно солидарно пройтись!😁
Регистрация на забег платная, на сайте runfreedom.org
ваш взнос - это донат на помощь политзаключённым!
Если не хотите регистрироваться через сайт - будет возможность донатить наличкой на месте (offerta libera) 🙂
До встречи!!!❤️
Russi Contro la Guerra 🤍💙🤍
#забег#политзаключенные#рим#russicontrolaguerra#runfofreedom#politicalorisoners#amnestyinternational
Ci si scandalizza per la decisione di Amnesty International - Italia o di (Z)ZeroCalcare di non partecipare al Lucca Comics.
Francamente la scelta mi pare legittima e sorretta da un ragionamento lineare: nessun razzismo.
Razzista era pretendere delle esternazioni da un direttore d'orchestra russo fino a ottenerne la cacciata: come al solito due pesi e due misure.
Ieri con Riccardo Noury
La mia al TG Plus di Cusano Italia TV
#italia#politica#attualità #informazione#dibattito#notizie#zerocalcare#AmnestyInternational#amnestyinternationalitalia#luccacomics2023
https://www.youtube.com/watch?v=i_VqjYdC_W4&ab_channel=SavinoBalzano
Amnesty International Recognizes Three Activists as Prisoners of Conscience
Amnesty International has designated three human rights defenders—Chow Hang-tung, Ding Jiaxi, and Jimmy Lai—as prisoners of conscience. They are imprisoned solely for their peaceful activism.
#ChowHangtung: Jailed for a vigil honoring Tiananmen victims; facing 10 years for “inciting subversion” under the National Security Law.
#Ding Jiaxi: Sentenced to 12 years for “subverting state power” after attending a discussion on current affairs, enduring torture during detention.
#JimmyLai: Media advocate facing life imprisonment for "colluding with foreign forces" under the National Security Law; already serving multiple sentences for peaceful protests.
Sarah Brooks from Amnesty highlights the Chinese government's ongoing repression of dissent. We call for the immediate release of these activists!
#politicalprisoner#AmnestyInternational
大赦國際承認三位活動人士為良心犯
中文:
大赦國際已將三位人權捍衛者——周漢彤、丁家喜和黎智英——指定為良心犯。他們因和平行動而被監禁。
#周漢彤:因紀念天安門受害者的燭光 vigil 被監禁;面臨10年“煽動顛覆”的刑期。
#丁家喜:因“顛覆國家政權”被判12年,並在拘留期間遭受酷刑。
#黎智英:媒體倡導者,因“勾結外國勢力”面臨終身監禁;已因和平抗議被判多次刑期。
大赦國際的莎拉·布魯克斯強調中國政府對異議的持續壓制。我們呼籲立即釋放這些活動人士!
https://www.amnesty.org/en/latest/news/2024/10/china-hong-kong-amnesty-international-recognizes-three-activists-as-prisoners-of-conscience/