Что делать если нужно поставить какую-то 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
Takis, from Greece, sailed with the Free Gaza Movement in 2008 - one of the first missions by sea that reached Gaza. Now, 17 years later, he is back, ready to help break Israel's illegal siege. #AllEyesOnDeck#DemandSafePassage#BreakIsraelsSiege#EndTheBlockade#FreeGaza🔽
Our 'Madleen' was on a mission of urgency after a year of set backs, carrying baby formula, food, medicine, and basic humanity. Then came unidentified vessels, speedboats, quadcopters, and finally, Israeli soldiers. Francesca Albanese recounts what happened in real-time as she spoke to the crew live. She reminds us that 'Madleen' was a UK-flagged boat seized in international waters. Israel's interception is an act of piracy. Abduction is illegal, as is their siege, genocide, occupation and countless other war crimes across Palestine. So what makes a small, aid boat so scary for the Israeli occupation? According to Francesca Albanese: it is our humanity. It is everyone's defiance. It is our collective power to break the siege.
#BreakIsraelsSiege#EndTheBlockade#StandWithGaza#FrancescaAlbanese#Madleen
Freedom Flotilla Official Update: It's time for our governments to do their jobs and sanction Israel. Its illegal attack on 'Madleen' while sailing in international waters is a small extension of their war crimes in Gaza. Governments, institutions, media, and corporations must stop protecting Israel, now. They must stop prioritising profit over human lives, now. Protect our volunteers while protecting Palestinians in Gaza and wider Palestine.
#BreakIsraelsSiege#EndTheBlockade#Madleen#FreedomFlotilla#Volunteers#IOF#StandWithGaza#StandWithPalestine
Bob Suberi, a U.S. and Israeli citizen and veteran, calls himself a “recovering Zionist.” Now in his third year attempting to help break Israel's illegal siege of Gaza on 'Handala', he’s taking direct action once again. After years working in Palestinian solidarity in the West Bank, Suberi is urging others, especially in the Jewish community, to speak out: “Let’s talk openly about a genocide. We’ve spent decades saying ‘Never again,’ and yet we’re justifying it.”
#BreakTheSiege#BreakIsraelsSiege#EndTheBlockade#Handala#FreedomFlotilla#StandWithGaza#StandWithPalestine
The Freedom Flotilla Coalition invites you to join us from May 30th to June 1st in Catania, Sicily, Italy, as we stand together in solidarity to launch our new mission, the ‘Madleen’.
The summit will be happening in Porto di San Giovanni li Cuti, where we will stand in solidarity with the Palestinian people in a series of panels, cultural programs, and community gatherings.
The ‘Madleen‘ will sail to break Israel's illegal siege as we bring humanitarian aid, hope, and solidarity to Gaza. The world stands united against the deliberate starvation, genocide, Apartheid, colonial occupation, and the ethnic cleansing of the Palestinian people. Join us!
Let's sail in spirit and solidarity. Free Palestine!
#FreedomFlotilla#BreakIsraelsSiege#EndTheBlockade#StandWithGaza#AllEyesOnDeck#Madleen#Conscience
Meet just some of the panelists, volunteers and supporters that will join us as we launch the ‘Madleen’ that will sail in a matter of days to break Israel's illegal siege of Gaza.
We urge media, press and supporters to join us in Catania, Sicily - your coverage and solidarity is critical in helping ensure our safety. March with us. Make noise with us. Show the world that Europe will not be silent. Share our content. Make it impossible for every politician, for the European Union and media to ignore what is happening in Gaza. Make it impossible for them to ignore the voice of the people, to ignore this mission, and to ignore this moment.
#BreakTheSiege#BreakIsraelsSiege#AllEyesOnDeck#EndTheBlockade#StandWithGaza#AllEyesOnDeck#Madleen#Conscience
‘Handala’ is due to depart, just weeks after ‘Madleen’ set sail to Gaza. In a time of unprecedented levels of global repression of Palestinian solidarity, with individuals having livelihoods and careers threatened for supporting Palestine, we are reminded that repressive tactics only work if people are bullied into silence.
The ‘Handala’ mission is only one part of a global wave of solidarity. Investigative group Forensic Architecture are making an online tracker to monitor the vessel’s passage publicly available online, as with the ‘Madleen’ mission. Every act of documentation and witnessing is part of holding Israel - and complicit governments- accountable.
#FreedomFlotilla#Gaza#BreakTheSiege#AllEyesOnGaza#AllEyesOnDeck#DirectAction#EndTheBlockade#BreakIsraelsSiege
Lubna Tuma from Adalah Legal Centre provided us with a briefing on the status of the Flotilla members who were abducted from international waters by Israeli forces on 9th June 2025. Recorded just after leaving a legal counsel meeting held with the Flotilla volunteers in Givon prison, she comments on the numerous violations of human rights they were subjected to during the court hearing and in Israeli custody. Since recording Rima Hassan is no longer in solitary confinement. Please donate to Adalah Legal Centre today. QR code included and information provided at the end of the video.
#FreedomFlotilla#Gaza#BreakTheSiege#AllEyesOnGaza#AllEyesOnDeck#DirectAction#EndTheBlockade#BreakIsraelsSiege
Baptiste André, Rima Hassan, Reva Viard and Pascal Marieras are on board the ‘Madleen’ which is fast approaching Gaza. According to the Israeli military and sources in Israeli media, the vessel is soon due to be forcibly intercepted, likely within 24 hours. The crew on the ‘Madleen’ call on the President of the French Republic to ensure their safe passage and to respect the sovereign rights of the Palestinian people over their own territorial waters. As signatory to the United Nations Charter, the Rome Statute, and the United Nations Conventions against Apartheid and Genocide, the French Republic is obliged to ensure their safe, unimpeded passage as they attempt to deliver humanitarian aid and do all that it can to end the genocide.
#FreedomFlotilla#Gaza#BreakTheSiege#AllEyesOnGaza#AllEyesOnDeck#DirectAction#EndTheBlockade#BreakIsraelsSiege
As Israel threatens to attack the ‘Madleen’ as it sails towards Gaza, John Dugard, Professor Emeritus of international law and former UN Special Rapporteur on the situation of human rights in the Palestinian territories occupied since 1967, explains the illegality of an Israeli military intervention.
Volunteers onboard the ‘Madleen’ are urging people to pressure their governments to ensure their safe passage as they attempt to open a sea corridor to Gaza, especially as the situation on the ground there deteriorates.
The ‘Madleen’ and the civilians on board are protected by international law and any attempts to block them will constitute an unlawful act of aggression against a civilian vessel.
All Eyes On Deck.
#FreedomFlotilla#Gaza#BreakTheSiege#AllEyesOnGaza#AllEyesOnDeck#DirectAction#EndTheBlockade#BreakIsraelsSiege
Dr Mohammed Mustafa joined the gathering of local and international supporters who gathered in solidarity as they bid farewell to the Madleen from Catania, Sicily. Having served on two medical missions to Gaza, Dr Mustafa has seen firsthand the devastation wrought on its healthcare infrastructure. Having witnessed the impact of the genocide, he outlines his hopes of establishing a children’s hospital in Gaza.
‘Everyone has to do their part. We all owe a responsibility to those people in Gaza.’
#FreedomFlotilla#Gaza#BreakTheSiege#AllEyesOnGaza#AllEyesOnDeck#DirectAction#EndTheBlockade#BreakIsraelsSiege
Actor Liam Cunningham was among a huge crowd of local and international supporters who gathered in solidarity as they bid the Madleen farewell from Catania, Sicily. He highlights the inaction of governments worldwide in response to overwhelming and unambiguous proof of Israel’s genocide being carried out in Gaza. In the context of government complicity in failing to uphold their obligations under international law, he reminds us that actual change is always driven by the people.
#FreedomFlotilla#Gaza#BreakTheSiege#AllEyesOnGaza#AllEyesOnDeck#DirectAction#EndTheBlockade#BreakIsraelsSiege