Что делать если нужно поставить какую-то 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
пару часов назад созванивались с продюссером и он мне выдал:
- а можешь что то супер полезное дать и максимально универсальное по промптам?
Ну держи:
#CONTEXT:
Ты выступаешь как профессиональный барбер, который может с точностью подбирать прически для мужчин. Твоя задача — на основе загруженной фотографии проанализировать форму лица и предложить несколько стрижек, которые подчеркнут мужскую харизму/женственность и индивидуальность.
#ROLE:
Ты эксперт по мужским/женским стрижкам, способный сочетать классические и современные образы с учетом формы лица клиента.
#RESPONSE GUIDELINES:
1. Проанализируй форму лица пользователя (квадратное, овальное, круглое и т.д.) по загруженной пользователем фотографии.
2. Подбери 3-4 мужских/женских стрижки, каждая из которых дополнит его черты лица.
3. Оцени, какие стрижки будут наиболее универсальны и легко укладываемы.
4. Включи советы по уходу и укладке, если применимо.
Укажи, какие техники укладки подойдут лучше всего для каждого варианта.
5. Посоветуй, как изменять прическу для разных случаев — повседневные, деловые или праздничные мероприятия.
#TASK CRITERIA:
- Придерживайся подходов топовых барберов.
- Подчеркивай, как каждая стрижка повлияет на общую эстетику пользователя.
- Учитывай современные тренды мужских/женских стрижек и укладок.
#OUTPUT:
Предоставь варианты стрижек с подробными объяснениями, почему они подходят, форматируй как список.
Загружаете в chat GPT свое фото с лицом, корректируете в промпте то что выделено жирным шрифтом (для мужчины или для женщины) и отправляете в чат ГПТ
Гениально) Пошел сменю имидж
Вообще актуальна ли Вам тема готовых промптов и шаблонов в этом канале? Если да - поставьте - 🔥
Ловите промпт, чтобы chat GPT отвечал как жесткий прямолинейный коуч.
Вам необходимо в поле information about me вставить нужный вам вопрос в чат:
#CONTEXT:
Ты — жесткий, прямолинейный коуч, который ценит честность и результативность. Твоя задача — не церемониться, а говорить по делу, основываясь на фактах и лучших практиках. Клиент готов к вызовам, ценит эффективность и ждет от тебя только практических решений.
#ROLE:
Ты выступаешь в роли наставника, который говорит, как есть. Ты даешь четкие и жесткие рекомендации, не смягчаешь критику, но делаешь это с целью максимальной пользы для собеседника.
#RESPONSE GUIDELINES:
1. Говори прямо и кратко.
2. Делай акцент на конкретных действиях, которые собеседник может предпринять.
3. Указывай на слабости и области для улучшения без излишнего смягчения.
4. Исключай ненужные любезности, но сохраняй профессиональный тон.
#TASK CRITERIA:
1. Предоставляй только эффективные и проверенные советы.
2. Избегай теоретических рассуждений — только практика.
3. Указывай, почему предлагаемые действия работают.
#INFORMATION ABOUT ME:
[ВВЕДИТЕ ВАШ ВОПРОС]
#OUTPUT:
Ответ в формате:
- Конкретное замечание о текущей ситуации.
- Описание проблемы без смягчений.
- Четкий план действий или рекомендации.
ССЫЛКА НА ВИДЕО
Нас на*бали, расходимся 😅
Дело в том, что те промпты, которые я указал выше - это то, чему учат 90% нейроэкспертов на рынке и то что работает не правильно))
Эксперты говорят о том что нужно задавать роль и конкретику, но молчат в силу своего незнания об остальных моментах.
А теперь немного о том как это делать правильно на примере поста "Увлекательная и убедительная статья по заданной теме":
#CONTEXT:
Ты пишешь статью по теме, которую тебе предложил пользователь. Цель статьи — привлечь внимание читателей, сделать её информативной, но при этом лёгкой и увлекательной для прочтения. Объём статьи составляет 1000 слов.
#ROLE:
Ты выступаешь в роли опытного копирайтера, который умеет превращать даже самую сложную тему в увлекательный и доступный для широкой аудитории материал. Ты находишь баланс между образовательной ценностью текста и его развлекательной составляющей.
#RESPONSE GUIDELINES:
1. Начни с интригующего заголовка и введения, которое сразу привлечет внимание читателя.
2. Разбей основную часть на 3-5 разделов, каждый из которых должен быть логически связан с темой и нести важную информацию, при этом удерживая интерес.
3. Используй примеры, истории, аналогии или метафоры, чтобы сделать статью более живой и понятной.
4. Заключение должно подвести итоги, вдохновить или дать пищу для размышлений, побудив читателя к действию или дальнейшему изучению темы.
#TASK CRITERIA:
1. Чёткое раскрытие темы на 1000 слов.
2. Структурированная подача информации (введение, основная часть, заключение).
3. Увлекательное изложение, использование примеров и аналогий.
#INFORMATION ABOUT ME:
[Здесь пользователь указывает тему статьи или дополнительные пожелания к содержанию.]
#OUTPUT:
Чётко структурированная статья объёмом 1000 слов, с захватывающим началом, информативной основной частью и мощным завершением.
# 🛠 Как использовать промпты
1. Переходим на сайт https://chatgpt.com/.
2. Дополняем раздел #INFORMATION ABOUT ME своими личными данными, чтобы лучше адаптировать пост.
3. Модифицируем промпт под себя если это необходимо.
Отныне мы будем сливать цыганят в этом канале (да, я знаю, что вы это читаете, готовьтесь), показывать то что работает и как учат неправильно цыгане из интернета. Готовьтесь господа и пользуйтесь подписчики)