Что делать если нужно поставить какую-то 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
#csharp
The Model Context Protocol (MCP) is an open standard that lets AI models connect easily and securely to external data sources and tools, like business systems or cloud services. It acts like a universal adapter, enabling AI to access the right context and data to perform tasks accurately and efficiently. Microsoft offers many MCP servers that link AI with services such as Azure DevOps, SQL databases, Microsoft 365, and more, allowing AI to interact naturally with your data and workflows. This helps you get smarter AI assistance, better automation, and easier integration across your tools.
https://github.com/microsoft/mcp
#csharp
RunCat 365 is a fun and cute app that shows a running cat animation on your Windows taskbar. The cat’s running speed changes based on your computer’s CPU usage, so you can easily see how hard your computer is working just by watching the cat. It’s made for Windows only and is built with C# and .NET 9.0. This app adds a playful and useful visual indicator to your taskbar, making it easier and more enjoyable to monitor your PC’s performance at a glance. It’s free and open-source, with many users enjoying its charm and functionality[4].
https://github.com/Kyome22/RunCat365
#csharp
The eShop reference application is a sample e-commerce website built using .NET 9 and a services-based architecture. It helps developers learn how to create modern web applications. To use it, you need to install .NET 9 SDK, Docker, and possibly Visual Studio or Visual Studio Code. This application is beneficial because it provides a real-world example of how to structure and deploy a complex web application, making it easier for developers to understand and implement similar projects.
https://github.com/dotnet/eShop
#csharp
JSC “KDB Bank Uzbekistan” is looking for Middle or High level of S/W designer with C#, C Programming
Job description:
Software design
· Experience to design new software for multi users using middleware like Apache Kafka
External Interface module development, maintenance and support
· Receiving and analyzing user’s request
· Coding and Test
· Implementation and documentation
· Supporting of the banking system users
Professional requirements:
· Experience of development tool: Visual Studio, GCC or any C compiler
· Experience of Database environment (Oracle)
· At least 2-3 years of experience in the field of programming in C/C++ & C#
· Time management (in order to meet deadlines set by the management)
· English Speaking (should be able to execute instruction and verbal report by English)
· Good written and spoken Russian
Working conditions:
Salary based on interview results, depends on skills and knowledge from 12 mln.soums to 22 mln. soums
Working hours 5/2 from 9:00 - 18:00
Office is located in the center of Tashkent
Benefits:
Medical insurance
Incentive payments for Holidays
Performance bonus
Material assistances for special events (marriage, birth of child and etc.)
Mortgage loan, overdraft facility
Teambuilding
Contacts:
Nozima Yakubova, Head of HR dpt.
telegram: @nozimayakubova
email: [email protected]
More information you can get from our web site: https://kdb.uz/en
#vakansiya#dotnet#csharp
Davr Bank Middle/Senior .NET dasturchi izlamoqda
Talablar:
• C# / .NET Framework
• ASP.NET, REST API
• WCF, Windows services
• Oracle
• JSON/XML
Qo'shimcha ma'lumotlar:
• Maosh - 500$ dan 2000$ gacha
• Ish vaqti - 9:00 dan 18:00 gacha
• Hudud - Toshkent shaxri
Resume yuboring:Nodir
.NET Uzbekistan Community
______
Telegram | Instagram | Youtube
✅ Завтра
Шахматный клиент-сервер на C#. Часть 2. Шахматная доска + фигуры. Unity3D.
📅 28 февраля / 19:00 (время МСК) / онлайн
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/P8dT1K
План вебинара:
~ Вступление. Установка Unity3D.
~ Размещение доски с фигурами.
~ Перемещение мышкой.
~ Фиксация хода.
~ Взятие фигур.
~ Проверка правил.
Для участия в вебинаре обязательна регистрация. На емейл, который вы укажете в регистрационной форме, 28 февраля 2018 года будет отправлено письмо-приглашение со ссылкой на трансляцию.
#Unity3D#Csharp#online#онлайн