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

Резултати

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

Пребарај: #ddk00

当前筛选 #ddk00清除筛选
3D-Hmangaupload

@hmangafor3duploadtest · Post #21021 · 15.01.2025 г., 15:51

#Astephen#AstralBot3D#Au_naturel_1-11 #Au_Naturel_17#ava_mason_the_pact#AWE-SOME-Ryan #AWE-SOME-RYAN #Aya#Ayla#Bad_Boss_05#Bad_Boss_5#Bad_Boss\xa01-6 #Bad_Day_-_柠檬 #Banap3D#Batman#BB君#Beatlees#befarmore#Being_a_dog_slut#Bella#Below_The_City_1-6 #Berseh#Big_Brother_1-5 #Birthday_Gift#BK_FR#Blackadder#BlackK_studio#BlackK_Studio#Blackmailed\xa0-_Series_Ep1-4 #Blackmaled_-_Amy_EP1 #Blackmaled_-_Faye_EP1-4 #Blackmaled_-_Layla_EP1-2 #Bounties_Alt._1 #Bounties_Ch._1 #Bounties_Ch._2 #Bounty_Huntress_Arie:Cockpit #Breaking_Boundaries#Bridget_and_Mack_-_The_Maid #Bridget_and_Mack_plus_Friend#Bridget_Gets_Abducted#Bucket_List_1-3 #Bucket_List_1-4 #Bucket_List_5#Bucket_List_8#Busted#Busted_2:Business_Expenses #C_plenet#Captain_Anger#Carey_Blake_-_Monster_Apocalypse #Casgra#Cassidy_Rabbit#cccpo#Celine#CG#Changes\xa0\xa0 #Chaosbirdy#Charon#CHARON#chinese#Chinese#Chinese_&_English #Chou_Hentai_Ultra_Boshi#CHS工作室#circle#Circle#Circle_1#Circle_1-9 #Circle_2#Circle_3#Circle_4#Circle_5#Circle_6#Circle_7#Circle_8#Circle_9#Clown_Rape_-_Yuko #CLUB_G.B._-_Today #Collateral#Colorfultrick#Commission_26#Commission_32#Commission_36#ConanTnT#Consequence#Consequences_01-09 #Core_Values_1#Core_Values_2_-_Ripe_for_Taking #Core_Values_3_-_Heaven_is_a_Place_on_Earth #Core_Values_4_-_Witch_in_Heat #Core_Values_5_-_Otherside #Core_Values_6_-_Breaking_the_Girl #Corneo#Corrupted_Demon_Family_Part_1#Corrupted_Demon_Family_Part_2#coser应聘陷阱#Cosplay_-_Reupload_+_Textless_version #Covid_69_1-2 #CruthlessC#Cryer#Cummycucky#Daily_Routine_1#Damn_The_Rain#Danger_Zone_1#Danger_Zone_2#danitian#Dark_City#Darklord#DarkLord#DarkSoul3D#Daughter_of_the_Flame-Goddess_of_Fertility #Daval3D#DDK00#Dead_or_Alive,_King_of_Fighters #decyiqi3#Demo#Demon#Demon_Doll_House:Ellies_Dream #Deranged_Aristocrat#Desperation#Deuteronomy_1-4 #dfifuw98#DIAOそうしたいから、そうするの #dick_yang#Dick_Yang#DigiPlant#DirectorEroko#DizzyDills#DL版#DO_YOU_WANT_2B_WITH_A_HUMAN#DOA_Tournament_Recruitment__Mai_Shiranui#DOAXVV#Dog_Delivery_Girls#Dog_Ganbang#dondon#Dondon#DOOM_GIRL#Double_Trouble#DQN“為了還債出賣關照自己的姐姐” #DreamDot#Driigon#Dsxeris#DT1886#DY_Heroine,rui #Dynasty_Warriors#Eastern_Wife_Western_Life_1#Eclesi4stik#Eclesi4stik_Summer_Heat_3D#eifrost#Elaine’s_Quest #Elastic_Woman#Elayne_Behind_the_Scenes_-_Strip_Poker_+_Birthday_Party #Elf_Slave_2#Elf_Slave_3#Elf_Slave_4#Elf_Slave_5#Elf_Slave_6_-_Main_set #Elf_Slave_7_-_Main_set #Elf_Slave_8_-_Main_set #Elf_Slave_Volunteer#Elf_with_the_Horse#Elf_with_the_Wolfman#Elsa_Poolside#Elven_Monolith_1#Elven_Monolith_2#Elven_Monolith_3#EMUCUS#Enchanted_Mansion_-_Elisabeth #END#English#EOTO#EP.01-04 #Erin_in_Private_Photoshoot_with_Barth_+_BLACKED #Erisa* #Eve_Princess#EverForever#Evie_Basketball#EXGA\xa0\xa073、74期 #Fairy

Hashtags

#astephen#astralbot3d#au_naturel_1#au_naturel_17#ava_mason_the_pact#awe#aya#ayla#bad_boss_05#bad_boss_5#bad_boss#bad_day_#banap3d#batman#bb君#beatlees#befarmore#being_a_dog_slut#bella#below_the_city_1#berseh#big_brother_1#birthday_gift#bk_fr#blackadder#blackk_studio#blackmailed#blackmaled_#bounties_alt#bounties_ch#bounty_huntress_arie#breaking_boundaries#bridget_and_mack_#bridget_and_mack_plus_friend#bridget_gets_abducted#bucket_list_1#bucket_list_5#bucket_list_8#busted#busted_2#c_plenet#captain_anger#carey_blake_#casgra#cassidy_rabbit#cccpo#celine#cg#changes#chaosbirdy#charon#chinese#chinese_#chou_hentai_ultra_boshi#chs工作室#circle#circle_1#circle_2#circle_3#circle_4#circle_5#circle_6#circle_7#circle_8#circle_9#clown_rape_#club_g#collateral#colorfultrick#commission_26#commission_32#commission_36#conantnt#consequence#consequences_01#core_values_1#core_values_2_#core_values_3_#core_values_4_#core_values_5_#core_values_6_#corneo#corrupted_demon_family_part_1#corrupted_demon_family_part_2#coser应聘陷阱#cosplay_#covid_69_1#cruthlessc#cryer#cummycucky#daily_routine_1#damn_the_rain#danger_zone_1#danger_zone_2#danitian#dark_city#darklord#darksoul3d#daughter_of_the_flame#daval3d#ddk00#dead_or_alive#decyiqi3#demo#demon#demon_doll_house#deranged_aristocrat#desperation#deuteronomy_1#dfifuw98#diaoそうしたいから#dick_yang#digiplant#directoreroko#dizzydills#dl版#do_you_want_2b_with_a_human#doa_tournament_recruitment__mai_shiranui#doaxvv#dog_delivery_girls#dog_ganbang#dondon#doom_girl#double_trouble#dqn#dreamdot#driigon#dsxeris#dt1886#dy_heroine#dynasty_warriors#eastern_wife_western_life_1#eclesi4stik#eclesi4stik_summer_heat_3d#eifrost#elaine#elastic_woman#elayne_behind_the_scenes_#elf_slave_2#elf_slave_3#elf_slave_4#elf_slave_5#elf_slave_6_#elf_slave_7_#elf_slave_8_#elf_slave_volunteer#elf_with_the_horse#elf_with_the_wolfman#elsa_poolside#elven_monolith_1#elven_monolith_2#elven_monolith_3#emucus#enchanted_mansion_#end#english#eoto#ep#erin_in_private_photoshoot_with_barth_#erisa#eve_princess#everforever#evie_basketball#exga#fairy