Что делать если нужно поставить какую-то 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
Le Forze di Difesa del Popolo, #HPG/#PKK: "Dal 22 al 23 marzo, le forze armate della Repubblica di #Turchia, hanno colpito le zone delle nostre basi 1045 volte, con gli aerei, elicotteri, carri, armi pesanti e obice. Abbiamo risposto".
«Тактика выжженной земли» или война по-турецки
Капиталистические политические режимы похожи друг на друга. Причем сходство между ними проявляется и в отношении класса угнетателей по отношению к другим классам, и в выборе методов достижения своих хищнических целей. Глядя на то, как турки ведут военные действия в Рожаве, и Южном Курдистане, не вольно на ум приходят образы вьетнамской войны, где армия США применяла печально известную тактику «выжженной земли».
Бомбардировка турецкой авиацией населенных пунктов в окрестностях города Захо области Духок в Южном Курдистане 8 августа 2020 года, из-за которой пострадало мирное население не первое подобное преступление. Оно стало очередным звеном в цепи актов военной агрессии, совершаемых турецкой армией уже не первый год. Но приобрели они интенсивность после 15 июня этого года, когда кабинет Эрдогана провозгласил начало новой захватнической операции в Южном Курдистане под предлогом борьбы против партизанских формирований Народных сил самообороны (#HPG).
Собственно, любая война всегда связана с жертвами. И гражданское население, к несчастью, страдает не в меньшей степени. Но у любой войны есть правила, в конце концов, есть и нормы международных конвенций…
Что же мы видим на деле – как только Турция наносит очередной удар по мирным объектам в районах Южного Курдистана, где органы власти подотчетны Демократической партии Курдистана (#ДПК), барзанисты максимально начинают «разъяснять» местным жителям, что все их беды не от того, что Турция их бомбит, а что этому виной Рабочая партия Курдистана (#РПК). Призывают симпатизирующее партии население не оказывать помощь партизанам, сообщать в соответствующие органы, если их отряды появляются в округе. В лучших традициях американской контр-партизанской тактики, которая применялась во Вьетнаме.
Да, конечно, нельзя ставить под один гребень всех курдов, живущих на подконтрольной ДПК территории, ответственность за сотрудничество с врагом лежит на совести исключительно конкретных официальных лиц, которые следуют в фарватере политического курса «династии» Барзани (#Barzani). На самом деле и жители Автономного Курдистана, и бойцы тех же отрядов Пешмерге (#Peşmerge) в массе своей поддерживают именно партизан, разделяя, в общем-то, идеологию «апочистов» (#ApocuHareket).
Об этом, кстати, не раз говорил наш товарищ, военный журналист и эксперт в курдском вопросе @qashqul, который сам побывал свидетелем сочувствующих настроений среди бойцов Пешмерге по отношению к РПК…
Об этом и многом другом знаем не понаслышке. Не скрывают своих явно пропартизанских взглядов и некоторые генералы Южного Курдистана которые в доверительных беседах не раз говорили, что, видя на вопиющее предательство элиты ДПК и сотрудничество с режимом Эрдогана, ушли бы в горы к РПК. Только вот политический курс барзанистских лидеров от этого сильно не меняется.
Надеемся, что такие факты, о которых мы поделились с Вами, наши уважаемые читатели, все же станут известны широким кругам мировой общественности.
#MuratKarayilan (#HPG, cofondatore #PKK): «Non abbandoneremo il popolo di #Rojava, costi quel che costi. #Turchia parte attiva negli attacchi in #Siria. Non si può parlare di pace e colpire i curdi. Responsabilità anche di #USA, #UK, #Germania, #Francia»
📌📽 Отличная подборка от канала @Gerilla_Tv🇬🇫🇻🇳
Для тех, кто понимает турецкий язык, вообще без улыбки смотреть не возможно 🇹🇷☠️...
#ApocuHareket#Başûr#Kurdistan#PKK#HPG#TürkiyeSaldırı#TürkPolitikası#FaşistTürkDevleti#Kurdistan
🆔@jiyana_nu
Барзанисты встали на тропу войны...
Минувшая неделя ознаменовалась беспрецедентным для медиа-пространства выступлением Демократической партии Курдистана (ДПК) и представителей Регионального правительства Курдистана против движения «апочистов» в лице Союза общин Курдистана (Koma Civakên Kurdistan – KCK) и Рабочей партии Курдистана (РПК). Нельзя сказать, что ситуация стала неожиданностью для Кандиля, и, в первую очередь, это связано с тем, что в «грязных политических» технологиях всегда применяется принцип «лучшая защита – нападение». А РПК давно не питает иллюзий насчет того, каково истинное отношение клана Барзани к партии, поэтому всегда готова принять удар.
Какова истинная подоплека начатой барзанистами кампании против курдского движения? Что и кто стоит за хаотичными информационными атаками ДПК? К чему они приведут в ближайшем будущем? И, наконец, какой возможный ответ приготовит РПК для главной протурецкой политической силы внутри курдского мира?
На все эти вопросы авторский коллектив канала Jiyana_Nû постарается ответить в еженедельной редакционной статье, предложенной Вашему вниманию >>>
#Barzani#Talabani#PKK#KCK#HPG#KDP#PUK#ДПК#ПСК#Горан#Erbil#Duhok#Suleymaniyah#Qandil#BashureKurdistan#Başur#Parastin#MİT#Asayiş#ПротестыБашур
🆔@jiyana_nu
Всем известно, что дружба – это всегда равноправные долговременные отношения. Товарищество – это отношения, основанные на общности интересов и идейных взглядов. Но это в жизни и в политической борьбе.
В дипломатии же, а в военной дипломатии, особенно, не может быть ни дружбы, ни товарищества. Есть лишь совпадение интересов; оно может быть временным, либо вариант второй - когда слабый игрок следует в фарватере интересов игрока более сильного.
О приоритетах внешней политике США в Большом Курдистане, попытках «слива» Рабочей партии Курдистана, усилении роли Турции и кризисе власти в северо-иракской курдской автономии в еженедельной редакционной статье канала @jiyana_nu.
#BaşureKürdistan#PKK#HPG#Qandil#Erbil#Duhok#AsSuleymaniyah#Rojava#Barzani#Talabani#KDP#PUK#Goran#SyrianWar#StopISIS#ДПК#ПСК#РПК#Барзани#Талабани#Рожава#USPolicy#MiddleEast