Что делать если нужно поставить какую-то 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
Telegram Batal Diblokir di Indonesia
Kementerian Komunikasi dan Informatika (Kominfo) memutuskan untuk tidak memblokir aplikasi Telegram di Indonesia. Keputusan ini datang setelah adanya beberapa peringatan yang diberikan kepada Telegram terkait penyebaran konten judi online di platform tersebut.
Sebelumnya, Kominfo sempat mengancam akan memblokir Telegram jika tidak kooperatif dalam menghapus konten-konten yang melanggar hukum di Indonesia. Namun, hingga saat ini belum ada tindakan pemblokiran yang dilakukan.
Kominfo berharap Telegram segera mengambil langkah konkret untuk mematuhi regulasi dan menjaga platform mereka tetap aman dan bersih. Keputusan ini diambil untuk memberikan kesempatan bagi Telegram untuk memperbaiki sistem mereka dalam mendeteksi dan menghapus konten ilegal.
Dilansir dari detikInet, Direktur Jenderal Aplikasi Informatika (Dirjen Aptika) Kementerian Kominfo, Telegram telah merespons surat dari Kominfo, utas Semuel Abrijani Pangerapan.
"Telegram sudah respon kita, minta channel-channel itu ditutup kan. Sudah kemarin," ujar Semuel pada Kamis (27/6/2024).
#blokir
Kominfo Ancam Blokir Telegram di Indonesia Karena Konten Judi Online
Pemerintah Indonesia, melalui Kementerian Komunikasi dan Informatika (Kominfo), telah mengumumkan rencana untuk memblokir aplikasi pesan instan Telegram. Keputusan ini diambil karena Telegram dianggap tidak kooperatif dalam memberantas konten judi online yang semakin marak di platformnya. Menteri Komunikasi dan Informatika, Budi Arie Setiadi, menegaskan bahwa jika Telegram tidak menunjukkan kerjasama yang memadai, aplikasi tersebut akan diblokir di Indonesia.
Telegram sendiri belum memberikan tanggapan resmi terkait ancaman pemblokiran ini. Namun, mereka diharapkan untuk segera mengambil langkah-langkah yang diperlukan agar tetap dapat beroperasi di Indonesia tanpa melanggar peraturan yang berlaku.
#blokir
Nepal Memblokir Telegram Karena Kasus Penipuan yang Meningkat
Otoritas Telekomunikasi Nepal (NTA) telah memerintahkan pemblokiran segera aplikasi pesan Telegram di seluruh negeri tersebut.
Apa yang terjadi:
• Sebuah pemberitahuan resmi segera dikirim ke semua operator telekomunikasi.
• Blokir mulai berlaku segera setelah arahan dari Perdana Menteri, Kementerian Komunikasi, dan Kementerian Dalam Negeri.
• Keputusan diambil setelah konsultasi dengan kepolisian dan lembaga keuangan.
Alasan resmi:
• Peningkatan tajam penipuan online yang melibatkan Telegram.
• Kasus pencucian uang yang dikonfirmasi melalui aplikasi tersebut.
• Ratusan insiden yang tercatat oleh polisi, mulai dari tawaran pekerjaan palsu hingga penipuan kripto dan keuangan.
#blokir#Nepal
Amsterdam telah memblokir Telegram untuk pegawai negerisipil
Pemerintahan Amsterdam telah berlakukan blokir penggunaan utusan Telegram untuk pejabat kota. Alasan utama blokir ini adalah potensi risiko spionase dan penggunaan aktif aplikasi oleh penjahat, khususnya untuk perdagangan narkoba.
Keputusan untuk melarangnya dibuat pada bulan April, namun tidak diumumkan secara terbuka. Kantor walikota menyatakan keprihatinannya tentang kemungkinan hubungan Telegram dengan pemerintah Rusia, yang dapat menimbulkan ancaman keamanan.
Blokir ini berlaku untuk ponsel kantor para pejabat. Pada saat yang sama, Telegram tetap populer di Belanda, dimana sekitar 1,9 juta orang menggunakannya.
Pakar keamanan siber menganggap tindakan tersebut dapat dibenarkan, mengingat kurangnya standar enkripsi end-to-end di Telegram. Telegram kini masuk dalam "daftar hitam" aplikasi bersama TikTok dan WeChat.
Organisasi nirlaba Offlimits dan Stichting Stop Bangalijsten menyerukan kepada Komisi Eropa untuk mengambil tindakan terhadap penyebaran konten berbahaya di Telegram, mengingat kelambanan pihak berwenang “tidak dapat dipahami”.
#Blokir#Amsterdam