Что делать если нужно поставить какую-то 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
🚀🚀 Another massive profit made in Premium Group and this time it is#IP/USDT which crossed All the Profit Targets for an humongous gain of 420%
🗨Contact @futurechief to enter the Binance Futures/Bybit/Kucoin/OKX Premium Signal Group & Receive daily high quality signals by being in the Premium Group
Абз. 1 п. 1 ст. 1245 ГК:
Авторам, исполнителям, изготовителям фонограмм и аудиовизуальных произведений принадлежит право на вознаграждение за свободное воспроизведение фонограмм и аудиовизуальных произведений исключительно в личных целях. Такое вознаграждение имеет компенсационный характер и выплачивается правообладателям за счет средств, которые подлежат уплате изготовителями и импортерами оборудования и материальных носителей, используемых для такого воспроизведения.
В современном мире, будто бы, требуется пересмотр подхода к свободному использованию интеллектуальной собственности.
Так, в тг можно через команду @song найти множество песен. Отчисляет ли кому-то тг вознаграждение? Сомневаюсь.
UPD. Короче там другое. Ща разберёмся. Не ставьте дизлайки, мне и так тошно.
UPD 2. Я кажется понял. Воспроизведение в личных целях никак нельзя контролировать. Оно "не приводит к вовлечению оригинала или экземпляров в оборот, поэтому его нельзя признать авторско-правовым использованием произведения" (учебник ИЦЧП, С. 123). Об этом написано в ст. 1273 ГК. Статья же 1245я говорит про другое. "Вознаграждение поступает авторам и иным правообладателям не непосредственно от пользователей, а от изготовителей и импортёров оборудования и материальных носителей, которые могут использоваться для целей воспроизведения аудиовизуальных произведений и фонограмм в личных целях" (учебник ИЦЧП, С. 427).
#ip
Абз. 4 п. 2 ст. 1295 ГК:
Право на вознаграждение за служебное произведение неотчуждаемо и не переходит по наследству, однако права автора по договору, заключенному им с работодателем, и не полученные автором доходы переходят к наследникам.
IP+наследственное+трудовое. Гремучая смесь, не иначе. Ну и как и с моральным вредом неясно, почему такое требование не переходит по наследству, ведь оно денежное. Связь с личностью нужно искать не в основании возникновения обязательства, а в его содержании.
#ip
Сижу в общаге в тёплой пижаме и шерстяных носках. Чай пью, IP читаю. Пока готовлюсь к сессии на канале будут всякие сумбурные посты.
И начну с довольно странной позиции кодекса не признавать наименование некоммерческой организации в качестве интеллектуальной собственности. Показательно подсвечивает проблему спор между фондом "Подари жизнь" и его клоном. Давно слышал об этом деле (кажется, Александр Николаевич в лекции упоминал). Сейчас нашёл заметку на zakon.ru.
https://zakon.ru/discussion/2017/07/11/nekommercheskim_organizaciyam_dali_shans_na_zaschitu_naimenovaniya__grazhdanskaya_kollegiya_vs_rassm
В ПП ВС №10 от 23.04.2019 говорится следующее:
147. В силу пункта 4 статьи 54, пункта 1 статьи 1473 ГК РФ право на фирменное наименование возникает только у юридического лица, являющегося коммерческой организацией.
Наименования некоммерческих организаций (статья 4 Федерального закона "О некоммерческих организациях") не являются средством индивидуализации юридических лиц в смысле положений части четвертой ГК РФ, на них не распространяется правовая охрана, установленная параграфом 1 главы 76 ГК РФ.
Ввиду этого правила, предусмотренные статьей 1473 ГК РФ, в том числе запреты, содержащиеся в пункте 4 этой статьи, на некоммерческие организации не распространяются.
Вместе с тем право на наименование некоммерческой организации может быть защищено от действий третьих лиц, являющихся актом недобросовестной конкуренции или злоупотреблением правом, на основании положений статьи 10 ГК РФ, Федерального закона "О защите конкуренции", статьи 10.bis Парижской конвенции. Кроме того, наименованию некоммерческой организации может быть предоставлена правовая охрана как коммерческому обозначению в случаях, предусмотренных параграфом 4 главы 76 ГК РФ.
Не относятся к фирменным наименованиям в смысле положений ГК РФ наименования не являющихся юридическими лицами объединений юридических лиц.
То есть ВС буквально говорит, что защита наименованию НКО предоставляется, но защита иная (только в случаях недобросовестной конкуренции или злоупотреблением правом, а также когда НКО осуществляет коммерческую деятельность охраняется коммерческое обозначение (ст. 1538 ГК и далее)).
#ip
Python 3 has a std lib module for working with #IP addresses:
»> import ipaddress
»> ipaddress.ip_address('192.168.1.2')
IPv4Address('192.168.1.2')
»> ipaddress.ip_address('2001:af3::')
IPv6Address('2001:af3::')
Learn more here:
https://docs.python.org/3/library/ipaddress.html
🇺🇸Universal Settles with AI Music Platform Udio
Universal Music Group settled its copyright lawsuit against AI music generator Udio and announced a new joint venture to launch a licensed AI music platform in 2026.
The deal includes a financial settlement and licensing for UMG's catalog, with the future platform allowing users to remix songs and create in artists' styles. Artists who opt in to the coming platform will be compensated for both model training and when their songs are remixed.
#AI#IP