TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #210 · 3 фев.

Что делать если нужно поставить какую-то 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

Резултати

Пронајдени 6 слични објави

Пребарај: #colisuemoffun

当前筛选 #colisuemoffun清除筛选
Rui's Ramble

@RsRamble · Post #747 · 03.10.2024 г., 15:40

Cyber Slayer, here to hunt down "Psycho killer" Imagination is a weapon. Those who lack it are first to die legend by goblin slayer! 嗯……上面是配文,排版都没动 我看不懂,但我大受……习惯了 是原创角色 Doujinfes SAFRA Tampines D1 (2024-09-28) #originalcharacter#cosplay#cyberpunk#katana#animeconvention#doujinfes#colisuemoffun#safratampines#singapore

Rui's Ramble

@RsRamble · Post #768 · 10.10.2024 г., 07:10

"Shall I start from the fingernails... Or...Should I rip out your wires one by one?" 好孩子不要学( 其实还有两张,但是当事人闭眼了…… 少女前线的M4 SOPMOD II Doujinfes SAFRA Tampines D2 (2024-09-29) #sopmod#m4sopmodii#tdoll#girlsfrontline#cosplay#game#animeconvention#doujinfes#colisuemoffun#safratampines#singapore

Rui's Ramble

@RsRamble · Post #742 · 03.10.2024 г., 13:09

「天上太阳,地下绿树; 我们的身体在地上诞生,我们的灵魂来自天上; 阳光及月亮照耀我们的四肢,绿地滋润我们的身体; 将此身交给吹过大地的风,感谢上天赐予奇迹与窟卢塔土地; 愿我们的心灵能永远安康,愿我能与所有同胞分享喜悦,愿能与他们分担悲伤, 请您永远赞美窟卢塔的人民,让我们以火红眼为证。」 全职猎人的酷拉皮卡 Doujinfes SAFRA Tampines D1 (2024-09-28) #kurapika#クラピカ#酷拉皮卡#hunterxhunter#全职猎人#cosplay#anime#animeconvention#doujinfes#colisuemoffun#safratampines#singapore

Rui's Ramble

@RsRamble · Post #736 · 02.10.2024 г., 08:09

「小僧来也!博士,有小僧在,你便安心做事罢!」 这几周的照片估计都会是这种黄蓝风格的,希望不会有审美疲劳…… 明日方舟的嵯峨 Doujiinfes SARFA Tampines D1 (2024-09-28) #saga#サガ#嵯峨#arknights#アークナイツ#明日方舟#cosplay#game#animeconvention#doujinfes#colisuemoffun#safratampines#singapore

Rui's Ramble

@RsRamble · Post #724 · 30.09.2024 г., 08:20

"I could be a better boyfriend than him." 第五人格的佣兵潮奈 Doujinfes SARFA Tampines D1 (2024-09-28) #naib#naibsubedar#mercenary#佣兵#bduck#identityv#identity5#第五人格#cosplay#game#animeconvention#doujinfes#colisuemoffun#safratampines#singapore

Rui's Ramble

@RsRamble · Post #740 · 03.10.2024 г., 11:46

「👹」 ↑↑↑↑↑ 这抽象的配文是当事人自己选的 能想象我穿着挂满小饰品的衣服给别人拍照的样子嘛,实乃抽象中的抽象 彩虹社的Vox Akuma Doujinfes SARFA Tampines D2 (2024-09-29) #vox#voxakuma#ヴォックスアクマ#nijisanji#nijisanjien#にじさんじ#にじさんじen#cosplay#virtualyoutuber#vtuber#animeconvention#doujinfes#colisuemoffun#safratampines#singapore