Что делать если нужно поставить какую-то 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
„G-Klasse“ — Komödie in russischer Sprache mit englischen Untertiteln🎞️
Dies ist Geschichte eines einfachen Fernfahrers🚐 namens Sanja, der davon träumt, genug Geld💸 für ein ruhiges Leben und die Zukunft seines Kindes zu verdienen. Er nimmt den Auftrag an, einen teuren Geländewagen zu überführen, ohne zu ahnen, dass das Auto in kriminelle Machenschaften verwickelt ist. Aus einem harmlosen Nebenjob wird eine Reiheabsurder Abenteuer, Polizeiverfolgungen👮🏻♂️ und moralischer Prüfungen, in denen Sanja zwischen Geld, Ehrlichkeit und Familie wählen muss.
📺Der Film verbindet Ironie und Drama und verwandelt eine Reise quer durch Russland in eine Metapher für die Suche nach sich selbst und nach den wahren Werten.
🍿Am 2. Dezember um 19:00 Uhr im Filmtheater im Russischen Haus
📲Anmeldung ist erforderlich.
#kino#komödie#untertiteln#abenteuer
Wenn die Abende länger und die Nächte kälter werden, ist es Zeit, innezuhalten und zu träumen. In der magischen Vorweihnachtszeit laden wir euch ein, dem Alltag zu entfliehen und warm eingekuschelt in den Sesseln unseres gemütlichen Filmtheaters!🥰🍿
📽️ Schon als Kind träumte Warja von der Bühne und Tanzen💃🏻 war ihr ganzes Leben. Als ihr Partner Nick wird, ein begabter Tänzer und Blogger🤳🏻, wächst ihre Freundschaft zu einem gemeinsamen Ziel. Kurz vor dem Finale des Wettbewerbs wird ein Geheimnis enthüllt: Warja ist taub, und plötzlich steht ihre Traumkarriere infrage. Ihr Weg ist mehr als Choreografie, es ist ein Kampf gegen Vorurteile, ein Zeichen für Freundschaft und Selbstvertrauen.
📺Die Familienkomödie „Rhythmen der Träume“ wird am 23. Dezember um 19:00 Uhr in russischer Sprache mit englischen Untertiteln gezeigt.
🖇️Anmeldung
#kino#familienfilm#komödie#filmeabend#untertiteln
Wenn die Abende länger und die Nächte kälter werden, ist es Zeit, innezuhalten und zu träumen. In der magischen Vorweihnachtszeit laden wir euch ein, dem Alltag zu entfliehen und warm eingekuschelt in den Sesseln unseres gemütlichen Filmtheaters!🥰🍿
📽️ Schon als Kind träumte Warja von der Bühne und Tanzen💃🏻 war ihr ganzes Leben. Als ihr Partner Nick wird, ein begabter Tänzer und Blogger🤳🏻, wächst ihre Freundschaft zu einem gemeinsamen Ziel. Kurz vor dem Finale des Wettbewerbs wird ein Geheimnis enthüllt: Warja ist taub, und plötzlich steht ihre Traumkarriere infrage. Ihr Weg ist mehr als Choreografie, es ist ein Kampf gegen Vorurteile, ein Zeichen für Freundschaft und Selbstvertrauen.
📺Die Familienkomödie „Rhythmen der Träume“ wird am 23. Dezember um 19:00 Uhr in russischer Sprache mit englischen Untertiteln gezeigt.
🖇️Anmeldung
#kino#familienfilm#komödie#filmeabend#untertiteln
Die Familienkomödie „Der Familienvater“ wird am 16. Februar um 19:00 Uhr in russischer Sprache mit englischen Untertiteln gezeigt.🍿
🎬 Die Hauptfigur Georgij ist ein erfolgreicher und wohlhabender Millionär und Unternehmer, der an ein luxuriöses Leben als Junggeselle gewöhnt ist. An seinem Geburtstag verbringt er den Tag ganz allein, trinkt ein wenig und befiehlt aus Spaß seinem Assistenten, bis zum Morgen eine „richtige“ Familie für ihn zu organisieren. Doch am nächsten Morgen geht sein Wunsch auf seltsame Weise in Erfüllung: Er wacht mit seiner Ehefrau und zwei Kindern auf, die fest davon überzeugt sind, dass sie schon immer bei ihm gewesen sind. Sogar sein Umfeld und sämtliche Dokumente bestätigen Georgys neuen Familienstand. Nun muss der Millionär das Leben in einer Familie erleben, ein liebevoller Ehemann und Vater werden und lernen, was man sich für kein Geld der Welt kaufen kann.
📲Anmeldung
#kino#film#familienkomödie#filmtheater#untertiteln
„Renn!“ – neue russischeKomödie mit englischen Untertiteln📽️
📺 Ein Einbrecher namens Sascha wird zufällig Zeuge des Mordes an der Ehefrau des Hauseigentümers Czernow und gerät in tödliche Verfolgung, gleichzeitig muss er es rechtzeitig zum Kindergartenauftritt seines Sohnes schaffen, denn davon hängt die Zukunft seiner Ehe ab.
🗓️ Am 4. Dezember um 19:00 Uhr
Kommt vorbei!❤️
📲Anmeldung
#kino#filmtheater#komödie#filmabend#berlinkino#untertiteln