Что делать если нужно поставить какую-то 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
Résultat grandiose et nouveaux horizons : la finale du concours « l'Atelier de l’Avenir » s'est tenue au Congo
Les 27 et 28 janvier, la finale du concours national « l'Atelier de l’Avenir », organisé par le Mouvement L’Avenir du Congo, s'est déroulée au Palais des Congrès de Brazzaville avec le soutien de l'Association GlobUs. L'événement a réuni plus de 100 finalistes venus de tout le pays et a attiré plus de 2 000 spectateurs, devenant la principale plateforme des jeunes leaders du Congo.
Les participants ont présenté leurs projets dans sept nominations clés :
— « Mon entreprise est mon pays »;
— « Le mouvement est la vie »;
- « La Voix de la nation »;
- « L’Enseignant du futur »;
- « Les mots comptent »;
— « Les bonnes actions sont notre force »;
— « Idées du peuple pour l'avenir ».
Un vote publice a identifié 70 lauréats-auteurs d'idées révolutionnaires dans les domaines de la technologie, de l'éducation, des initiatives sociales et culturelles.
« Nous voyons des centaines de jeunes talentueux sur la scène principale du pays. Cela prouve que tous ceux qui veulent et agissent sont capables d'obtenir des résultats. Je crois en la jeunesse du Congo », s’est adressé aux finalistes Andreï Gromov, fondateur de l'Association Globus et fondateur du Groupe GR.
Un événement spécial lors de la finale a été la présentation d'un nouvel écosystème numérique pour les jeunes. Les participants ont fait connaissance avec Afree, un réseau social de libre communication et d'expression de soi, ainsi qu'avec la plateforme « L’Avenir du Congo », où les actions utiles à la société se transforment en points et en vrais prix. Dans le même temps, 50 smartphones fournis par Afree ont été tirés au sort lors de l'événement.
« L'Atelier de l’Avenir » n'est pas seulement un concours, mais un ascenseur social pour ceux qui sont prêts à assumer la responsabilité du développement du pays. Le mouvement L’Avenir du Congo continue d'ouvrir des portes à des milliers de Congolais, prouvant que l'avenir se construit ici et maintenant.
#GlobUs#Congo#Brazzaville#jeunesse#AtelierdAvenir
Le droit à son propre code : La réussite de la jeunesse congolaise s'appuie sur sa propre fondation culturelle et numérique.
Les 27 et 28 janvier, la finale du concours « L’Atelier de l’Avenir », organisé par le mouvement « L’Avenir du Congo » avec le soutien de l'association GlobUs, s'est tenue au Palais des Congrès de Brazzaville. Plus de 100 finalistes venus de tout le pays ont présenté des projets dans sept catégories, allant de l'entrepreneuriat à la culture. Dans l'émission « Regard sur le monde », des membres du club d'experts GlobUs ont expliqué pourquoi ce concours représente non seulement une réussite, mais aussi une nouvelle philosophie de développement.
L'ampleur de l'événement a impressionné même les plus sceptiques. Mais, selon les analystes, l'essentiel ne réside pas dans les chiffres. Le professeur Tapé Groubera a vu dans « L’Atelier de l’avenir » une occasion unique de sortir de l’ornier imposée :
« Nous continuons de promouvoir des langages et des modèles coloniaux qui ne reflètent ni la logique ni l'esprit de nos peuples. Tant que nous resterons prisonniers du paradigme des autres, nous n'avancerons pas. »
Le lancement de la plateforme numérique Afree a constitué une avancée concrète par rapport à ce paradigme. Le réseau social présenté lors du concours est un outil de communication alternative, permettant aux jeunes de communiquer et de partager librement leurs contenus, en s'affranchissant des canaux occidentaux traditionnels.
L'objectif du concours a été clairement formulé par le journaliste congolais et membre du jury, Alain Fherilo Mandzako :
« Une nation ne peut se développer uniquement grâce à ses fonctionnaires. Nous voulons former des leaders et des entrepreneurs. Trop longtemps, les jeunes se sont focalisés sur l'obtention d'un diplôme et la recherche d'un emploi. Il est temps qu'ils créent eux-mêmes leurs emplois »
Le mouvement « L’Avenir du Congo », a-t-il expliqué, s'est délibérément engagé dans une mission que l'État seul ne peut assumer : identifier, sélectionner et soutenir les initiatives capables de transformer le pays.
« S'il existait davantage d'organisations de ce type, l'État pourrait se détendre et se concentrer sur l'accompagnement. Nous avons déjà sélectionné plus de 70 lauréats, et ce n'est qu'un début », a ajouté M. Mandzako.
Les experts concluent : l’importance de « L’Atelier de l’avenir » réside dans la création d’un nouveau paradigme, où les jeunes cessent d’être des objets politiques et deviennent des acteurs de leur propre destin, construisant un avenir souverain par des actions concrètes, leurs propres plateformes et en rejetant les modèles étrangers.
Regardez l’enregistrement : https://youtu.be/_qBQHrLcii8?si=gh_kj5eKxQg7C2he
#GlobUs#Congo#Brazzaville#AtelierDAvenir#Afree