Что делать если нужно поставить какую-то 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
The XXIV ALBA-TCP Summit, held in Caracas, marked 20 years since the bloc's founding. The alliance welcomed Palestine as an honorary member with "brotherly country" status, condemned Israel's “terrible crimes against humanity,” and pledged to hold a future summit in Palestine.
The final communiqué also called for Cuba’s removal from the US list of state sponsors of terrorism and demanded an end to the economic blockade against the island. Leaders reaffirmed their commitment to Latin American and Caribbean integration, peace, and sovereignty.
Read the full report here 👉🏼https://venezuelanalysis.com/news/alba-bloc-defends-peace-sovereignty-and-palestine-at-xxiv-summit/
#ALBA#InternationalSolidarity#RegionalIntegration
📰 NEWS | Latin American Leaders Preach Unity Against Trade Wars and Mass Deportations at CELAC Summit
At the IX CELAC Summit in Honduras, Latin American and Caribbean leaders condemned US-led sanctions, trade wars, and anti-migrant policies. Venezuela's Maduro urged the bloc to “reinvent itself” and adopt a general secretariat.
Leaders also rejected the Trump administration’s use of the Alien Enemies Act to deport Venezuelans, with reports confirming that most of the 2,500+ deported migrants have no criminal record. Some were even held in Guantánamo Bay before being returned.
🔗 Read our report here: https://venezuelanalysis.com/news/latin-american-leaders-preach-unity-against-trade-wars-and-mass-deportations-at-celac-summit/
#CELAC#Migration#RegionalIntegration
📰 NEWS | CELAC-EU Summit Urges Peace as Venezuela’s Maduro Warns of Caribbean ‘War Threats’
The CELAC-EU gathering in Santa Marta, Colombia, emphasized the two blocs' commitment to peace, cooperation and multilateralism. A final communiqué rejected "threats and use of force" amidst a US military buildup in the Caribbean.
Venezuelan President Nicolás Maduro addressed the summit, calling for a regional response to preserve the region's sovereignty and self-determination.
Read the full report here 👉https://venezuelanalysis.com/news/celac-eu-summit-urges-peace-as-venezuelas-maduro-warns-of-caribbean-war-threats/
#USMilitaryThreats#CELAC#RegionalIntegration#InternationalSolidarity
@RusEmbMalta Press release:
🇷🇺🇦🇲🇰🇿🇰🇬🇧🇾EAEU Turns 10: A Decade of Integration and Growth
On May 29, 2014, the Treaty on the Establishment of the Eurasian Economic Union (EAEU) was signed – marking the beginning of a new era of economic integration across Eurasia.
Over the past decade, the Union’s five member states – Russia, Armenia, Kazakhstan, Kyrgyzstan, and Belarus – have achieved remarkable results:
📈 In 2024, mutual trade within the EAEU reached nearly $100 billion
💱 Over 90% of settlements were made in national currencies
🌐 International cooperation is expanding rapidly
🔄 The internal market is functioning and evolving steadily
🤝 The EAEU demonstrates resilience amid global turbulence, offering a stable and non-discriminatory framework built on equality, mutual respect, and benefit.
Today, the EAEU is a growing center of gravity in international economic relations:
🌍 Four observer states – Uzbekistan, Cuba, Iran and Moldova
🤝 Free trade agreements with Vietnam, Iran, and Serbia
🤝 Non-preferential trade agreement with China
📜 Over 80 cooperation MoUs through the Eurasian Economic Commission
🪙Trade talks are underway with Indonesia, the UAE, Egypt, India, Mongolia, and others
🇱🇧 We welcome potential interest from our Lebanese friends in partnering with the Union.
Russia remains a consistent supporter of deeper coordination between the EAEU and other regional structures – including the CIS, ASEAN, and SCO – as part of building a Greater Eurasian Partnership, an idea first proposed by President Vladimir Putin in 2015.
🔗 The EAEU today stands as a model of successful integration – based on trust, equality, and shared benefit. We thank our partners and the Eurasian Economic Commission for their continued cooperation, and we look forward to unlocking even greater potential together – for the benefit of our peoples and businesses.
#EAEU#EurasianUnion#Eurasia#EconomicCooperation#Russia#Armenia#Kazakhstan#Kyrgyzstan#Belarus#Trade#EAEUDay2025#RegionalIntegration