Что делать если нужно поставить какую-то 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
#DIRITTOINTERNAZIONALE
In quest’articolo relativo alle relazioni tra Serbia e Kosovo, approfondisco il contenuto del recente incontro trilaterale avvenuto ad Ohrid e le reazioni delle parti in gioco.
👉@giurisprudentia
#DIRITTOINTERNAZIONALE
La Corte Europea dei diritti dell’Uomo ha condannato la Federazione Russa al risarcimento del danno derivante dalle violazioni degli articoli 3 (divieto di trattamenti disumani e degradanti) e 5 (diritto alla libertà ed alla sicurezza) della Convenzione Europea per la salvaguardia dei diritti dell’uomo e delle libertà fondamentali, nella vicenda relativa alle condotte poste in essere nel territorio dell’Abcasia.
Degno di nota è un elemento risultante dalla sentenza, in discontinuità rispetto a qualsiasi precedente disposto dalla Corte EDU: in particolare, si afferma come la Russia fosse in grado di esercitare un’influenza determinante sulle azioni del governo abcaso (l’Abcasia non è, comunque, mai divenuta indipendente secondo i parametri definiti dal diritto internazionale convenzionale e consuetudinario) ancor prima del 2008, come attestato da una serie di documenti, archivi nazionali, passaporti, dichiarazioni pubbliche di rappresentanti del governo russo e disposizioni di legge dell’ordinamento giuridico russo.
👉@giurisprudentia
#DIRITTOINTERNAZIONALE
Per la prima volta nella storia dell’organo delle Nazioni Unite, uno Stato è stato espulso dalla Commissione ONU per i i diritti umani: si tratta dell’Iran, la cui espulsione è stata votata da 29 degli altri 52 Stati membri.
👉@giurisprudentia
#DIRITTOINTERNAZIONALE
L’Assemblea Generale ONU si è espressa in merito alla necessità di rendere la Federazione Russa responsabile dell’obbligazione di risarcimento dei danni derivanti dai crimini commessi in Ucraina.
In termini di rapporti internazionali, interessante è notare il dislivello Cina-India, con quest’ultima postasi su una posizione di astensione. Inoltre, degno di nota è anche il voto di astensione di Israele, motivato in base alla reiterata posizione avversa dell’Ucraina - in sede ONU - rispetto ad Israele, nelle votazioni recentemente tenutesi sul tema del conflitto israelo-palestinese.
👉@giurisprudentia
#DIRITTOINTERNAZIONALE
La Corte Europea dei diritti dell’Uomo si è opposta all’estradizione di un individuo di nazionalità cinese dalla Polonia alla Repubblica Popolare Cinese. La decisione si è fondata sul mancato rispetto degli articoli 3, che prevede il divieto di tortura e trattamenti disumani e degradanti, e 5 CEDU, che sancisce l’esigenza della sussistenza di una base giuridica per procedere all’arresto o alla detenzione di un individuo che sia in attesa dell’estradizione.
La decisione può acquisire una straordinaria importanza, se rapportata al fatto che i 46 Stati europei membri del Consiglio d’Europa potranno usufruirne in vista di future richieste di estradizione provenienti dal governo cinese. Degno di nota, inoltre, è il fatto che nel caso di specie ad essere coinvolto sia stato un cittadino comune, per il reato di frode, privo di legami a specifici gruppi politici di opposizione al governo di Pechino e non appartenente ad un’etnia perseguitata nel territorio cinese.
👉@giurisprudentia
#DIRITTOINTERNAZIONALE
Nella giornata di ieri, i Ministri degli Esteri dei 6 Paesi dei “Balcani Occidentali” hanno convenuto di procedere alla stipulazione di tre accordi internazionali multilaterali, da finalizzare nel prossimo mese a Berlino.
In particolare, sotto la guida della ministra tedesca Baerbock, si è deciso di concludere: un accordo sulla libera circolazione dei cittadini degli Stati balcanici (risultando essere sufficiente esibire la propria carta d’identità); un accordo sul riconoscimento dei titoli universitari all’interno dei territori dei 6 Stati (superando il sistema vigente, che prevede il pagamento di una somma compresa fra i 300 ed i 500 euro); un accordo sul riconoscimento di tutte le qualifiche professionali nei territori di tali Stati.
Un’attenzione peculiare deve essere rivolta alle conseguenze che, dalla stipulazione dell’accordo sulla libera circolazione, deriverebbero nei rapporti tra Serbia e Kosovo.
Attualmente, infatti, ciascuno dei due Stati non attribuisce alcuna validità - sul piano giuridico - ai documenti esibiti dall’altro Stato. Con la stipula dell’accordo citato, invece, si procederebbe ad un “tacito riconoscimento” dell’altra entità statale, assumendo come valida la presentazione delle carte d’identità rilasciate da entrambe le autorità nazionali nei territori dei due Stati.
👉@giurisprudentia
#DIRITTOINTERNAZIONALE
La Corte Suprema ucraina ha affermato, in molteplici sentenze emanate nel corso dell’anno, l’esistenza dei presupposti per la deroga dell’immunità dalla giurisdizione della Federazione Russa, nel contesto dei crimini commessi da individui nell’esercizio della funzione, nei confronti di civili ucraini.
Innanzitutto, vi è da dire che l’orientamento della Corte ucraina si inserisce nel contesto della famosa decisione della CIG nel caso Germania vs Italia, in cui si affermò l’immunità dello Stato tedesco rispetto al risarcimento del danno per i crimini commessi dai gerarchi nazisti sul territorio italiano.
La CIG, in quel caso, sancì l’immunità dalla giurisdizione in base al fatto che gli atti fossero stati commessi “iure imperii”, ossia nell’esercizio delle funzioni di governo.
Diversamente rispetto a ciò, la Corte ucraina ha affermato l’assenza dei presupposti per poter affermare l’immunità iure imperii delle forze armate russe, in virtù di quattro punti chiave:
1)Affermare l’esistenza dell’immunità iure imperii comporterebbe, nel caso di specie, violare il diritto ad un’effettiva protezione in giudizio, come statuito ad es. dall’art.6(1) della CEDU.
2)È applicabile il principio di territorialità, sancito dall’art.12 della Convenzione ONU sull’immunità, in virtù del quale la giurisdizione spetta allo Stato del foro (ossia quello del giudice designato dalla parte ricorrente) nel caso di fatto commesso nel territorio dello Stato del foro, ai danni di un cittadino di tale Stato e realizzato in tutto o in parte da soggetti presenti in quel territorio al momento del fatto.
3)Se si affermasse l’immunità iure imperii della Russia, si giungerebbe ad una violazione dell’art.8 della Convenzione ONU per la soppressione del finanziamento al terrorismo: in base a tale disposizione, lo Stato danneggiato deve adottare tutte le misure necessarie per assicurare che i proventi derivanti dal risarcimento del danno, per atti o fatti connessi a reati terroristici, siano trasferiti alla popolazione civile.
4)Infine, la Corte Suprema ucraina si è spinta fino ad escludere l’esistenza di atti commessi iure imperii. In sostanza, oltre ad aver giustificato la propria convinzione circa l’assenza dei presupposti per concedere l’immunità iure imperii, il massimo organo della giurisdizione ucraina ha escluso che vi fosse la possibilità di ritenere che gli atti illeciti commessi dalle forze armate russe potessero rientrare nella categoria di “atti iure imperii”: ciò deriva dal fatto che, in mancanza del riconoscimento della sovranità ucraina sul territorio in cui il governo ucraino esercita la propria potestà d’imperio, la Russia ha fatto venir meno quel “principio del mutuo riconoscimento della sovranità” che costituisce la base giuridica per ritenere sussistente l’immunità di cui si discute.
-Da un articolo di Ielyzaveta Badanova, dello “European Journal of International Law”
👉@giurisprudentia
#DIRITTOINTERNAZIONALE
L’associazione “Uyghur Human Rights Project” ed il “World Uyghur Congress” hanno presentato una denuncia penale in Argentina ai sensi delle disposizioni in materia di “giurisdizione universale” della Costituzione argentina.
In base a tali disposizioni, le Corti argentine possono occuparsi dei crimini internazionali, in cui rientrano il genocidio, la tortura ed i crimini contro l’umanità, a prescindere dal luogo nel quale si sia verificato il fatto.
Il giudice incaricato dovrà esaminare la denuncia e le osservazioni del pubblico ministero sulla sussistenza dei presupposti per poter avviare il processo.
-WilliamYang (Twitter)
👉@giurisprudentia
#DIRITTOINTERNAZIONALE
In quest’articolo relativo alle relazioni tra Serbia e Kosovo, approfondisco il contenuto del recente incontro trilaterale avvenuto ad Ohrid e le reazioni delle parti in gioco.
👉@giurisprudentia
#DIRITTOINTERNAZIONALE
La Corte Europea dei diritti dell’Uomo ha condannato la Federazione Russa al risarcimento del danno derivante dalle violazioni degli articoli 3 (divieto di trattamenti disumani e degradanti) e 5 (diritto alla libertà ed alla sicurezza) della Convenzione Europea per la salvaguardia dei diritti dell’uomo e delle libertà fondamentali, nella vicenda relativa alle condotte poste in essere nel territorio dell’Abcasia.
Degno di nota è un elemento risultante dalla sentenza, in discontinuità rispetto a qualsiasi precedente disposto dalla Corte EDU: in particolare, si afferma come la Russia fosse in grado di esercitare un’influenza determinante sulle azioni del governo abcaso (l’Abcasia non è, comunque, mai divenuta indipendente secondo i parametri definiti dal diritto internazionale convenzionale e consuetudinario) ancor prima del 2008, come attestato da una serie di documenti, archivi nazionali, passaporti, dichiarazioni pubbliche di rappresentanti del governo russo e disposizioni di legge dell’ordinamento giuridico russo.
👉@giurisprudentia
#DIRITTOINTERNAZIONALE
Per la prima volta nella storia dell’organo delle Nazioni Unite, uno Stato è stato espulso dalla Commissione ONU per i i diritti umani: si tratta dell’Iran, la cui espulsione è stata votata da 29 degli altri 52 Stati membri.
👉@giurisprudentia
#DIRITTOINTERNAZIONALE
Il governo americano ha richiesto un incontro urgente dell’ECOSOC, per discutere della possibilità di far cessare la qualifica di membro della Commissione sullo Status delle donne, da parte dell’Iran.
👉@giurisprudentia