Что делать если нужно поставить какую-то 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
✍️PÉTITION
Signez , Diffusez
Objectif ➡️ 100 000 ✍️
Pour que l’assemblée nationale l’étudie
https://petitions.assemblee-nationale.fr/initiatives/i-1029
SUIVRE SOS DONBASS
#stoparmingukraine#sosdonbass#petition
Le mouvement #StopKillingDonbass a besoin de vous afin de diffuser cette pétition auprès du plus grand nombre de personnes !
✍️ La signature est facile, rapide, gratuite et anonyme si vous le souhaitez !
https://www.leslignesbougent.org/petitions/100000-11737/
#stopkillingdonbass#stoparmingUKRAINE#petition
Let's make history together! Sign this petition to ask Google for a doodle celebrating International Men's Day. Your signature can help promote equality and recognition for men worldwide. ✍️👨🌍
[Click here to sign]
@googlefactss
#InternationalMensDay#GoogleDoodle#Petition#Equality#Men
Google's Play Integrity policy is making it harder to use custom ROMs. If you can't access banking apps or payments, it's time to take action!
🔑 What is a Keybox?
When using a custom ROM, some apps won’t work due to security checks (Strong Integrity). A keybox acts as a fake certificate to trick apps into thinking your phone is unmodified, allowing apps like banking apps to work. Modules like TrickyStore can be used along with keyboxes to bypass these restrictions. However, keyboxes are being abused in certain ways:
- Shared publicly or checked via bots, leading to revocations.
- Scammers sell fake or leaked keyboxes.
- Genuine users who need keyboxes for essential apps are losing access.
❗️Precautions:
- Don't use keyboxes for flexing unless your important work apps really need it. Stick with Device Integrity, it makes no difference.
- Avoid sharing them publicly or checking them via keybox checker bots in telegram. These get forwarded to the hosters in some cases!
- Stop checking for Integrity via multiple apps / playstore repeatedly. You should not bother until your apps stop working.
- Use alternative apps when possible.
Please do remember that any keybox made public or being used in bulk would trigger the failsafe and Goolag would eventually ban it!
🚨✍️Sign the Petition✍️🚨:
https://www.change.org/p/stop-google-from-limiting-custom-roms
@alph4 is working to take legal action against Google through Antitrust and consumer protection agencies in the European Union over the issue of Google Play Integrity!
"We ask Google to change its Play Integrity implementation, allowing Custom ROMs to pass Play Integrity so the users can enjoy their device's capabilities fully"
✅ To-Do List:
• Sign and verify your signature via email auth.
• Share how experience regarding how Play Integrity affects your custom ROM experience with respect to apps.
• Spread the word to friends and other groups. Forwarding this post can also help.
Thanks for your attention and support!
A community post made on behalf of @Nothing_Archive & @Crosscrew Federation
#Keybox#PlayIntegrity#Petition#StrongIntegrity#CustomROM#AndroidFreedom#DigitalRights
聯署要求取消邀請,支持打壓人權演員甄子丹,擔任奧斯卡金像獎頒獎嘉賓
Cancel inviting Donnie Yen who supports human rights abuses as a presenter for the Oscars.
請簽署支持及轉發
https://chng.it/YFPf7mVwdT
Donnie Yen is a supporter of the Chinese Communist regime and has made several remarks in support of the Chinese government's policies, including supporting the implementation of the National Security Law in Hong Kong and accusing Hong Kong protesters of being rioters. These remarks not only violate the spirit of freedom of speech but also deny the rights of the people of Hong Kong to fight for their freedom and democracy.
We demand that the Oscars Committee reconsider this decision and cancel the invitation of Donnie Yen as a presenter for the Oscars. Let us work together to uphold human rights and moral values, and make the Oscars a truly respectful award.
#OscarAwards#聯署#petition#甄子丹#媚共偽人#殺神4#反送中運動#反修例#沒有暴徒只有暴政
請大家支持全球聯署!
召集30萬人關注香港政治犯,呼籲所有民主政府向中國香港政府施壓,停止以法律侵害民主自由。
Call 300,000 people to pay attention to Hong Kong political prisoners, call on all democratic governments to put pressure on the Hong Kong government of China, and stop using the law to infringe on democratic freedoms. #聯署#Petition
聯署連結:
https://chng.it/fbHngk2gs4
Facebook 活動頁
fb.com/events/1636456453850005
#政治犯#47人案#民主派初選#國安法#未審先判#欲加之罪#冤獄#莫須有#初選無罪#釋放政治犯