Что делать если нужно поставить какую-то 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
Sudahkah Anda salat tarawih? Karena Ramadan tahun ini disarankan untuk salat tarawih #DiRumahAja , untuk itu Gusmin mau kasih khutbah digital biar asupan keislaman kita terus bertambah. Temanya tentang cara Nabi berbisnis bersama Ustad Hakim Jayli
https://youtu.be/1xhU_OgF75c
Kumpulan Kisah Kiai Tua dan Kiai Muda
Seorang Kiai Tua berjalan bersama Kiai Muda menyusuri dinamika kehidupan. Apa saja pengalaman unik yang mereka temui? Bacaan asyik menemani yang sedang #dirumahaja
Semoga sehat semuanya 🙏
1. Menggendong gadis cantik
http://nadirhosen.net/tsaqofah/filsafat/198-kisah-kiai-tua-dan-kiai-muda-1-menggendong-gadis-cantik
2. Membakar al-Qur’an
http://nadirhosen.net/tsaqofah/filsafat/199-kisah-lanjutan-kiai-tua-dan-kiai-muda-2-membakar-al-qur-an
3. Jamuan Ilahi
http://nadirhosen.net/tsaqofah/filsafat/200-kisah-berikutnya-kiai-tua-dan-kiai-muda-3-jamuan-ilahi
4. Bertemu Jin
http://nadirhosen.net/tsaqofah/filsafat/201-kisah-terusan-kiai-tua-dan-kiai-muda-4-bertemu-jin
5. Binatang buas
https://nadirhosen.net/tsaqofah/filsafat/kisah-kiai-tua-dan-kiai-muda-5-binatang-buas
Tabik,
GNH
Hai Ankers, apa kabar?
Masih waras?
Kita kopdar virtual yuk!
Saling cerita, dari Ankers yang sudah kembali commuting atau masih #dirumahaja kaya Minker.
Kalian bisa join kapan?
Nanti Minker jadwalin kopdar virtual mingguan 😊
Jawab di kolom komentar ya...
UPDATE CORONA
380 Kasus baru per-17 April 2020.
Total:
5.923 kasus positif
4.796 dalam perawatan
607 sembuh
520 meninggal dunia
Sumber: covid19.go.id
Semoga wabah ini segera berakhir. Amin...
GUSDURian Peduli Covid-19
Update info tentang pencegahan covid-19 dan update distribusi bantuan di akun resmi GUSDURian Peduli.
*IG: @gusdurianpeduli*
https://instagram.com/gusdurianpeduli?igshid=q6tsn1wovqsp
*Twitter: @gusdurianpeduli* #SalingJaga
https://twitter.com/gusdurianpeduli?s=08
*Facebook: Gusdurian Peduli*
https://www.facebook.com/gusdurian.peduli.9
#SalingJaga#dirumahaja
UPDATE CORONA
380 Kasus baru per-16 April 2020.
Total:
5.516 kasus positif
4.472 dalam perawatan
548 sembuh
496 meninggal dunia
Sumber: covid19.go.id
Semoga wabah ini segera berakhir. Amin...
#SalingJaga#dirumahaja
UPDATE CORONA
330 Kasus baru per-11 April 2020.
Total:
3.842 kasus positif
3.229 dalam perawatan
286 sembuh
327 meninggal dunia
Sumber: covid19.go.id
Semoga wabah ini segera berakhir. Amin...
#SalingJaga#dirumahaja
UPDATE CORONA
219 kasus baru. Gorontalo menjadi provinsi terbaru yang memiliki kasus positif.
Total:
3.512kasus positif
2.924 dalam perawatan
282 sembuh
306 meninggal dunia
Semoga wabah ini segera berakhir. Amin...
Sumber: covid19.go.id
#SalingJaga
#dirumahaja
UPDATE CORONA
337 kasus baru. NTT menjadi provinsi terbaru yang memiliki kasus positif.
Total:
3.293 kasus positif
2.761 dalam perawatan
252 sembuh
280 meninggal dunia
Semoga wabah ini segera berakhir. Amin...
Sumber: covid19.go.id
#SalingJaga
#dirumahaja
Masker memang diutamakan untuk orang yang sakit. Namun di situasi pandemi COVID19 ini, kita tidak pernah tahu siapa yang membawa virus. Untuk itu, di mana pun kita pergi, mengenakan masker adalah hal yang penting. #SalingJaga#dirumahaja
UPDATE CORONA
7 April 2020 terdapat 247 kasus baru
Total:
2.738 terkonfirmasi positif
2.313 dalam perawatan
204 sembuh
221 meninggal dunia
Sumber: http://covid19.go.id
#SalingJaga#dirumahaja
Semenjak wabah #COVID19 merebak, ada berbagai istilah baru yang sering kita temui, terutama istilah OTG, ODP & PDP.
Ketiga istilah tersebut untuk mengelompokkan risiko serta gejala yang timbul bagi orang yang mungkin atau sedang terinfeksi #COVID19.
#dirumahaja
#LawanCovid19https://t.co/CODlaqbrla
Keluarga besar Jaringan GUSDURian Indonesia mengucapkan selamat hari raya Idulfitri 1441 H #EidMubarak, mohon maaf lahir dan batin.
Di hari kemenangan ini semoga kita semua selalu diliputi keberkahan dan dimudahkan segala urusan.
Tentu banyak rencana-rencana yang tertunda karena dua bulan terakhir kita berusaha #dirumahaja. Semoga semua perjuangan diganti dengan keberkahan bulan Ramadhan dan Idul Fitri 1441 H.