Что делать если нужно поставить какую-то 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
💻 IT sohasida ayollar uchun yaratilayotgan imkoniyatlar bilan yaqindan tanishishga shoshiling!
24 – 27-oktabr kunlari Toshkent shahrida yilning eng yirik IT haftaligi – ICTWeek Uzbekistan 2023 tadbiri bo‘lib o‘tadi.
Haftalikning muhim tadbirlaridan biri – IT sohasida ayollar uchun yaratilayotgan imkoniyatlar bilan yaqindan tanishtirishga bag‘ishlangan “Empowering Women in IT: Leading the Digital Revolution” (Ayollarning IT sohasidagi imkoniyatlarini kengaytirish: raqamli inqilobga rahbarlik qilish) sammiti hisoblanadi.
🤵♀️Sammitda qizlar uchun yangi loyihalar haqida ma’lumot beriladi. Unda qo‘shni davlatlardan va xalqaro tashkilotlardan ekspertlar, mutaxassislar hamda ushbu yo‘nalishda muvaffaqiyatga erishgan xotin-qizlar qatnashadi.
Ushbu tadbi 25-oktabr, soat 15:00 da Raqamli texnologiyalar vazirligi binosida bo‘lib o‘tadi.
Imkoniyatni qo‘ldan boy bermang, ICTWEEK da ishtirok eting!
☎️ (+998 77) 707-66-00, (+998 77) 707-00-66.
🟣ictweek.uz
#digital
#ictweek2023
#ITwomen
📌Telegram|Facebook|Instagram|Youtube|Threads |Twitter
Мы подчеркиваем важность девушек в IT и поддержали эту тему на ICT Week.
В рамках выступлений на тему цифровизации и информационных технологий, представитель VEON AdTech Моника Авакьян рассказала о растущей значимости девушек в IT. Преодоление стереотипов и предубеждений, непредвзятое менторство и поддержка, а также инклюзивность играют существенную роль в гендерном равенстве технологической индустрии.
"Расширение прав и возможностей девушек в IT-индустрии является не только вопросом социальной справедливости, но и стратегическим императивом", — подчеркнула Моника Авакьян.
Команда VEON AdTech считает, что успех не знает гендерных границ, а сочетание технических знаний и навыков работы с людьми может привести к выдающимся достижениям!
– – –
We always emphasize the importance of ladies in IT and therefore supported this topic at ICT Week.
As part of the presentations on digitization and information technology, VEON AdTech representative Monica Avakian spoke about the growing significance of young female professionals in IT. Overcoming stereotypes and biases, inclusivity, open-minded mentorship, and support play a significant role in achieving gender equality in the technology industry.
"Expanding the rights and opportunities for girls in the IT industry is not only a matter of social justice but also a strategic imperative," emphasized Monica Avakian.
The VEON AdTech team believes that success knows no gender boundaries. The combination of technical knowledge and people skills can lead to outstanding achievements!
#VEONAdTech#IT#innovations#womeninIT#career#ICTWeek2023
С 24 по 27 октября в Ташкенте проходит ICT Week - форум о развитии IT-отрасли и технологиях. СЕО VEON AdTech George Held выступил на конференции с лекцией «Заменит ли искусственный интеллект человечество» и принял участие в панельной дискуссии «Создание экосистемы стартапов Узбекистана: привлечение венчурного капитала и расширение глобального охвата».
Основываясь на богатом опыте работы в цифровых технологиях, George Held считает искусственный интеллект мощным инструментом развития человечества. При использовании во благо, он имеет огромный потенциал для улучшения всех сфер жизни, включая работу, здравоохранение, образование и межличностные отношения.
«Индустрия информационных технологий продолжает развиваться и вносить значительный вклад в мировую экономику. По своему опыту могу сказать, что несмотря на стереотипы, IT-стартап требует не только математический расчет, но и живой творческий подход», — подчеркнул George Held.
– – –
ICT Week, a forum on the development of the IT industry and technologies, is taking place in Tashkent from October 24th to 27th. CEO of VEON AdTech, George Held, delivered a lecture titled "Will Artificial Intelligence Replace Humanity?" at the conference and participated in a panel discussion on "Unlocking the Uzbekistan Startup Ecosystem: Attracting Venture Capital and Expanding Global Reach."
Drawing on his extensive experience in digital technologies, George Held believes that Artificial Intelligence is a powerful tool for human development. When used for the greater good, it has huge potential to improve all aspects of life, including work, healthcare, education, and interpersonal relationships.
"The information technology industry continues to evolve and significantly contribute to the global economy. Based on my experience, despite stereotypes, an IT startup requires both mathematical calculations and a lively creative approach," emphasized George Held.
#VEONAdTech#IT#innovations#bigdata#AI#ITeducation#ICTWeek2023