Что делать если нужно поставить какую-то 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
⚛️Ресей - әлемдегі атомдық мұзжарғыш флоты бар жалғыз ел.«Росатом» мемлекеттік корпорациясы 2018 жылдан бастап Солтүстік теңіз жолының (СТЖ) инфрақұрылымдық операторы функцияларына ие және СТЖ-да кеме қатынасын ұйымдастыруға, инфрақұрылымдық объектілер салуға, навигациялық-гидрографиялық қамтамасыз етуге және ауыр арктикалық жағдайларда теңізде жүзу қауіпсіздігі жүйесіне жауап береді. Бүгінгі таңда Ресейдің атом мұзжарғыш флотының құрамына сегіз кеме кіреді.
🚢Оның ішінде жеті атом мұзжарғышы және ядролық энергетикалық қондырғысы бар бірегей көлік кемесі – «Севморпут» контейнер тасығыш кемесі бар. Біздің жаңа #icebreakerfrominside айдарымызда біз сізді ең жаңа 22220 мұзжарғыштарымен таныстырамыз. Бүгінгі таңда мұндай үш атом кемесі бар – «Арктика», «Сібір» және «Орал».
22220 жобасының тағы үш мұзжарғышы жасалу кезеңінде тұр.
🧊 2024 жылдың қаңтарында осы сериядағы «Ленинград» деп аталатын тағы бір әмбебап атомдық мұзжарғыш салынды.
⚛️Россия ― единственная страна в мире, обладающая атомным ледокольным флотом.
Госкорпорация «Росатом» с 2018 года наделена функциями инфраструктурного оператора Северного морского пути (СМП) и отвечает за организацию судоходства на СМП, строительство инфраструктурных объектов, навигационно-гидрографическое обеспечение и систему безопасности мореплавания в тяжелых арктических условиях. На сегодняшний день в состав атомного ледокольного флота России входит восемь судов. Из них семь атомных ледоколов и одно уникальное транспортное судно с ядерной энергетической установкой – контейнеровоз «Севморпуть».
🧊В нашей новой рубрике #icebreakerfrominside мы познакомим вас с новейшими ледоколами 22220. На сегодняшний день таких атомоходов три – «Арктика», «Сибирь» и «Урал».
Еще три ледокола проекта 22220 находятся на этапе строительства.
🚢В январе 2024 года состоялась закладка еще одного универсального атомного ледокола этой серии под названием «Ленинград».
#icebreakerfrominsideМашинное отделение и гребные электродвигатели ⭐️
Машинное отделение – это «сердце» 💗энергообеспечения ледокола. В этом помещении находятся два турбогенератора мощностью 36 МВт каждый и обслуживающие их системы.
Турбогенераторы получают произведенный пар от ядерного реактора и за счет главного генератора вырабатывают электричество, которое подается на три главных электродвигателя.
Электродвигатели, в свою очередь, приводят в движение три линии вала, которые передают вращение на гребные винты, расположенные в кормовой части судна.
В качестве движителя на ледоколах проекта 22220 используются три винта фиксированного шага со съемными лопастями. Диаметр гребных четырехлопастных винтов – 6200 мм.
Гребной винт работает в особо тяжелых условиях и практически недоступен для повседневного осмотра, поэтому его изготавливают из стали повышенного качества, предусматривая упрочнение его поверхности и защиту от коррозии.
#icebreakerfrominside#Rosatom
#icebreakerfrominsideМашина бөлімшесі және еспелі электр қозғалтқыштары
⭐️
Машина бөлмесі мұзжарғышты энергиямен қамтамасыз етудің «жүрегі» болып табылады. Бұл бөлмеде әрқайсысының қуаты 36 МВт болатын екі турбогенератор және оларға қызмет көрсететін жүйелер бар. Турбогенераторлар өндірілген буды ядролық реактордан алады және негізгі генератор арқылы үш негізгі электр қозғалтқышына жеткізілетін электр энергиясын өндіреді.
Электр қозғалтқыштары, өз кезегінде, айналымды кеменің артқы бөлігінде орналасқан ескіш бұрамаларға беретін біліктің үш желісін қозғалысқа келтіреді.
22220 жобалы мұзжарғыштар қозғалғыш ретінде алынбалы қалақтары бар үш тұрақты бұранданы пайдаланады. Төрт қалақшалы ескіш бұрамалардың диаметрі - 6200 мм.
Ескіш бұранда ерекше ауыр жағдайларда жұмыс істейді және күнделікті қарау үшін іс жүзінде қол жетімсіз, сондықтан оны жоғары сапалы болаттан дайындайды, оның бетін нығайтуды және коррозиядан қорғауды көздейді..
#icebreakerfrominside#Rosatom
#icebreakerfrominside Атомный реактор😍
При строительстве универсальных атомных ледоколов проекта 22220 использовались инновационные решения, которые до этого не применялись на судах с ядерной энергетической установкой. Атомные ледоколы этой серии оснащены двумя энергетическими установками нового поколения РИТМ-200, не имеющими аналогов. Именно они делают ледоколы этой серии самыми мощными в мире на сегодняшний день.
Основа энергетической установки РИТМ-200 — два парогенерирующих блока тепловой мощностью 175 МВт каждый. Отличительной особенностью реактора РИТМ-200 являются четыре парогенератора, интегрированные в корпус активной зоны. ⚙️Такая интегральная компоновка уменьшает материалоёмкость, габариты установки и повышает ее безопасность.
#Rosatom#атомныеледоколы
🚢👌#icebreakerfrominside Корпус
22220 жобасының ядролық мұзжарғыштары қос, берік корпусқа ие, ол екі бөліктен тұрады - ішкі және сыртқы. Корпустың ішінде құрғақ бөліктер - цистерналар бар, олар тартылуды өзгертуге және теңіздерде де, таяз су аймақтарындағы сағаларда да жұмыс істеу үшін мүмкіндік береді.
Қатаң жұмыс жағдайларына байланысты корпус пен қондырманың өзі үшін суыққа төзімді арнайы болат таңдалады. Үйкелісті азайту үшін корпус арнайы бояу қабатымен қапталған және пневматикалық жуу қолданылады. 22220 жобадағы мұзжарғыштың су тасымалы 33 540 тоннаны құрайды.
🔄🔄🔄
🚢👌#icebreakerfrominside Корпус
Атомные ледоколы проекта 22220 имеют двойной, прочный корпус, он состоит из двух частей – внутренней и внешней. Внутри корпуса есть сухие отсеки - цистерны, которые позволяют менять осадку и работать как в морях, так и в устьях рек на мелководных участках.
Исходя из суровых условий эксплуатации, для самого корпуса и надстройки выбирается особая холодустойчивая сталь. Для уменьшения трения корпус покрыт слоем специальной краски и используется пневмообмыв. Водоизмещение ледокола проекта 22220 составляет 33 540 тонн.
#Rosatom#icebreaker
#icebreakerfrominside Атом реакторы😍
22220 жобасының әмбебап ядролық мұзжарғыштарын құру кезінде атом электр станциясы бар кемелерде бұрын қолданылмаған инновациялық шешімдер қолданылды. Бұл сериядағы атомдық мұзжарғыштар баламасы жоқ РИТМ-200 жаңа буынының екі энергетикалық қондырғысымен жабдықталған. Осы сериядағы мұзжарғыштары бүгінгі күні әлемдегі ең қуатты етеді.
РИТМ-200 электрлық құастырушысы негізін әрқайсысының жылу қуаты 175 МВт болатын екі бу өндіретін қондырғыдан құрайды. РИТМ-200 реакторының айрықша ерекшелігі ядро корпусына біріктірілген төрт бу генераторы болып табылады. Бұл интегралды құрылым материалды тұтынуды, қондырғының өлшемдерін азайтады және оның қауіпсіздігін арттырады.
#Rosatom#ядролықмұзжарғыштар#технологиялар