Что делать если нужно поставить какую-то 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
#members
👍Oktyabr va Noyabr oylarida 112 ta eksportga yo‘naltirilgan kompaniya IT Park a’zosi bo‘ldi, ulardan 59 tasi AQSh, Kanada, Buyuk Britaniya, Yaponiya, Xitoy, Shveytsariya va boshqa davlatlardan xorijiy kapitalli kompaniyalar.
📈Asosiy faktlar:
- Yangi eksportchilar asosan IT va biznes xizmatlarini taqdim etishga e'tibor qaratmoqda.
- Dastlabki yil ichida 2,500+ yangi ish o‘rni yaratiladi, jumladan mintaqaviy hududlarda – mahalliy mutaxassislar yetakchi xalqaro kompaniyalarga qo‘shilish va global bozorda ishlash imkoniyatiga ega bo‘ladi.
- Asosiy eksport bozorlari: AQSh, Kanada, Yevropa va Osiyo.
🌍 Xalqaro muvaffaqiyat namunalari:
KARAM (Portugaliya-Vengriya): global bozorlarda moliyaviy rejalashtirish.
BEUKITCH EV (Malayziya): AQSh va Malayziya uchun dasturiy ta'minot ishlab chiqish.
INVERSON OPERATIONS (Shveytsariya): AQSh va Shveytsariya uchun IT-konsalting va kiberxavfsizlik.
UNLOCKWARE IT SERVICES (Kanada): Qatar, Saudiya Arabistoni, Kanada va AQShga xizmat eksporti.
FUJIYAMA LOGISTICS (Yaponiya): ta’minot zanjiri boshqaruv tizimlarini qo‘llab-quvvatlash bo‘yicha mahalliy mutaxassislar.
Umumiy prognoz qilingan eksport hajmi: birinchi yil davomida 70 million AQSh dollari!
🇺🇿O‘zbekiston IT sohasidagi qudratli davlat sifatida global e’tiborni jalb etishda davom etmoqda va o‘sish hamda hamkorlik uchun yangi imkoniyatlar yaratmoqda.
🕸 Batafsil ma'lumotni bizning veb-saytimizda o‘qing
______
👍During October and November, 112 export-oriented companies have become IT Park members, including 59 companies with foreign capital from the USA, Canada, the UK, Japan, China, Switzerland, and other countries.
📈 Key Facts:
- New exporters mostly focus in providing IT and business services.
- 2,500+ new jobs will be created wihin the first year of activity, including in regional areas -- local specialists have the opportunity to join the leading international companies and work on the global market.
- Main export markets: the USA, Canada, Europe, and Asia.
🌍 Examples of international success:
KARAM (Portugal-Hungary): financial planning for global markets.
BEUKITCH EV (Malaysia): software development for the USA and Malaysia.
INVERSON OPERATIONS (Switzerland): IT consulting and cybersecurity for the USA and Switzerland.
UNLOCKWARE IT SERVICES (Canada): exporting services to Qatar, Saudi Arabia, Canada, and the USA.
FUJIYAMA LOGISTICS (Japan): local specialists supporting supply chain management systems.
Total projected export volume: $70 million in the first year of operations!
🇺🇿Uzbekistan continues to attract global attention as an IT powerhouse, creating opportunities for growth and collaboration.
🕸 Read more on our website
Telegram | Instagram | Facebook | Youtube | LinkedIn
#members
👍 IT Park rezidenti“UIC Games” $400 000 miqdoridagi grantni e’lon qilmoqda!
Agar siz o‘yinlar ishlab chiqishga ishtiyoqmand bo‘lsangiz va bu sohadagi eng yaxshi mutaxassislar bilan jamoada ishlashni istasangiz, bu grant aynan siz uchun mo‘ljallangan.
Grant nimalar taqdim etadi:
🟢 bir yil davomida o‘yinlar ishlab chiqishni bepul o‘rganish uchun noyob imkoniyat
🟢 o‘qish davri mobaynida stipendiya
🟢 o‘qishni tugatgach kafolatlangan ish o‘rni
⭐️ Grantlar soni cheklangan. Imkoniyatni boy bermaslik uchun @UICGames_bot orqali ro‘yxatdan o‘ting!
_____________
👍 IT Park membersUIC Games Announces Grant of $400,000!
If you are passionate about game development and wish to collaborate with top professionals in the industry, this grant is designed for you.
Benefits of the Grant:
🟢 A unique opportunity to engage in a one-year, tuition-free study program in game development
🟢 A stipend provided throughout the duration of the program
🟢 Guaranteed employment upon completion of the training
⭐️ The number of grants is limited. Register through @UICGames_bot to seize this opportunity!
Telegram | Instagram | Facebook | Youtube | LinkedIn
#members
👍 IT Park rezidenti“UIC Games” $400 000 miqdoridagi grantni e’lon qilmoqda!
Agar siz o‘yinlar ishlab chiqishga ishtiyoqmand bo‘lsangiz va bu sohadagi eng yaxshi mutaxassislar bilan jamoada ishlashni istasangiz, bu grant aynan siz uchun mo‘ljallangan.
Grant nimalar taqdim etadi:
🟢 bir yil davomida o‘yinlar ishlab chiqishni bepul o‘rganish uchun noyob imkoniyat
🟢 o‘qish davri mobaynida stipendiya
🟢 o‘qishni tugatgach kafolatlangan ish o‘rni
⭐️ Grantlar soni cheklangan. Imkoniyatni boy bermaslik uchun @UICGames_bot orqali ro‘yxatdan o‘ting!
_____________
👍 IT Park membersUIC Games Announces Grant of $400,000!
If you are passionate about game development and wish to collaborate with top professionals in the industry, this grant is designed for you.
Benefits of the Grant:
🟢 A unique opportunity to engage in a one-year, tuition-free study program in game development
🟢 A stipend provided throughout the duration of the program
🟢 Guaranteed employment upon completion of the training
⭐️ The number of grants is limited. Register through @UICGames_bot to seize this opportunity!
Telegram | Instagram | Facebook | Youtube | LinkedIn
#members
Делимся лайфхаком: дарим в подарок своему мужчине костюм самого маленького размера и носим с ним по очереди 🤍
В преддверии 14 февраля, ознакомьтесь с актуальными позициями зимней капсулы в данном посте и не забывайте, что релиз спортивных костюмов состоится уже 20.02, а это значит, что их осталось совсем немного.
🔥The Religion Order | Support
@ThankStickerBot
Qué puede hacer este bot?
Envía automáticamente pegatinas de miembros de agradecimiento cuando su grupo llega a los miembros 'x'.
Idioma: Inglés
(visto en @BotsGram_cu)
#thankyou, #thanks, #group, #members, #sticker, #stickers