Что делать если нужно поставить какую-то 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
Anfang des 19. Jahrhunderts war Erdung kein Wellness-"Trend" – für viele war es ein anspruchsvoller Lebensstil.
Kupfer- und Brassstangen waren nicht nur das ultimative High-Society-Accessoire; sie wurden als Brücke konzipiert.
Warum Kupfer und Messing?
Durch die Verwendung eines leitfähigen Metalls wie Kupfer, um eine physische Verbindung zwischen Handfläche und Erde zu erhalten, versuchten die Menschen:
• Entzündung neutralisieren: Statische Aufrüstung entladen und den Körper mit der natürlichen elektrischen Oberflächenladung der Erde synchronisieren.
• Frequency verbessern: Rekalibrierung des inneren "Rhythmus" des Körpers gegen die Stressoren der neuen Industriewelt.
• Vitalität stärken: Einen einfachen Spaziergang durch den Park in eine herstellende Sitzung für das Immunsystem verwandeln.
In unserer Welt der Gummisohlenschuhe und des Hochhauses sind wir "gedämmter" denn je zuvor. Da fragt man sich - wusste die "Alte Welt" etwas über die menschliche Batterie, die wir seitdem vergessen haben?
➡️Mehr Kupferprodukte 👈
#AlteWelt
War das wirklich nur ein Bahnhof?
Bahnhof Antwerpen-Centraal, Belgien. Eröffnet im Jahr 1905, so heißt es.
Aber wie kann man das erklären?
- riesige Marmorsäulen
-Eine massive zentrale Kuppel, die kaiserlichen Kathedralen nachempfunden ist.
-Blattgold, königliche Wappen, astronomische Details ... und das alles in einer „Wartehalle“?
Keine Baupläne erklären, wie es zwei Weltkriege mit minimalen Schäden überstanden hat.
Es ist nicht nur ein Bahnhof, sondern ein Relikt aus der Alten Welt.
Frage dich selbst:
Brauchte das Belgien des 19. Jahrhunderts wirklich einen Palast, um einen Zug zu erreichen?
#AlteWelt
Wurde König Ludwig deshalb für verrückt erklärt und "um die Ecke" gebracht.
So wie Tesla.....
Du willst die Wahrheit!
Weisses Armband
Mehr Hier 👇🏻
https://t.me/WeissesArmband2❗️
#AlteWelt
Auf der Weltausstellung für Industrie und Gewerbe in Paris im Jahr 1900 wurde eine „Straße der Zukunft“ aufgebaut: ein 3,5 km langer, elektrisch betriebener Gehweg, der sich durch das gesamte Ausstellungsgelände bewegte.
Vor nur 100 Jahren wurde ein Konzept, das wir heute nur noch aus Fantasyfilmen kennen, erfolgreich umgesetzt und täglich von bis zu 70.000 Menschen genutzt. Heutzutage würde ein solcher Mechanismus einiges kosten – Strom ist schließlich deutlich teurer geworden, nicht Äther.
Jack Raven
Du willst die Wahrheit!
Weisses Armband
Mehr Hier 👇🏻
https://t.me/WeissesArmband2❗️
#AlteWelt
Iran in den 1930er Jahren
In all diesen alten Videos kann man sehen, wie sehr die Menschen noch miteinander verbunden waren!
Du willst die Wahrheit!
Weisses Armband
Mehr Hier 👇🏻
https://t.me/WeissesArmband2❗️
#AlteWelt
Die Stadt Dresden in den 1930er Jahren vor ihrer Zerstörung.
So vieles ging im Nebel des Krieges verloren...
Du willst die Wahrheit!
Weisses Armband
Mehr Hier 👇🏻
https://t.me/WeissesArmband2❗️
#AlteWelt
Das Straßennetz der alten Welt war voller Innovationen, Stil und Schönheit. Es war alles bereits da!
Du willst die Wahrheit!
Weisses Armband
Mehr Hier 👇🏻
https://t.me/WeissesArmband2❗️
#AlteWelt
Wenn du dieses Bild eines "Kamins" aus der alten Welt siehst, fallen dir als erstes zwei Geräte in der Mitte auf, und warum in aller Welt stehen Bücher direkt neben dem Kamin?
Der Kamin diente nicht zum Verbrennen von Feuer, sondern hatte eine Antenne aus Betonstahl, die wie eine Wetterfahne über das Dach hinaus ragte. Sie saugte den Äther auf die Metallrückwand, wodurch die Luft im Schornstein ionisiert und Wärme erzeugt wurde.
Im Internet findet man viele dieser Bilder von Gebäuden aus der alten Welt, aber "sie" drehen die Geschichte immer um und verwenden alles neu. Warum eigentlich? Freie Energie ist möglich, jetzt.
Du willst die Wahrheit!
Weisses Armband
Mehr Hier 👇🏻
https://t.me/WeissesArmband2❗️
#AlteWelt
Vielleicht hast du dich schon einmal gefragt, wie das Licht in der alten Welt funktionierte?
Es wurden damals wohl keine Glühbirnen benutzt, was war also ihre Version des Lichts?
Die Gebäude leuchteten mithilfe der Backsteine! Die Gebäude waren eine eigene Batterie!
Stell dir vor, du musst keinen Strom bezahlen, du hast es im Winter warm, du musst kein Benzin für dein Auto bezahlen und du kannst z.B. Hühner züchten, die für dich Eier legen... Du hast viel Zeit, um wunderbare Werke zu schaffen, und du musst dich nicht beeilen, niemand und nichts schränkt dich ein.
Das war die alte Welt!
Du willst die Wahrheit!
Weisses Armband
Mehr Hier 👇🏻
https://t.me/WeissesArmband2❗️
#AlteWelt
Technologische Strukturen der alten Welt
Eine sehr beleuchtete Vergangenheit, gespeist aus dem Äther darüber. Das sind ganz sicher keine Öllampen oder Kerzen!
Du willst die Wahrheit!
Weisses Armband
Mehr Hier 👇🏻
https://t.me/WeissesArmband2❗️
#AlteWelt