Что делать если нужно поставить какую-то 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
✈️Bali expects 2.79 million tourists on New Year's Eve
📰 The Ministry of Transportation says 2.79 million visitors will arrive on the island during the Christmas and New Year holidays. This is traditionally the peak season on the island.
📍 Most of the travelers will arrive via the airport – 1.5 million people. Another 1.2 million will arrive via the Gilimanuk port, which connects Bali to the islands to the west, and 90,000 via the Padang Bay port to the east.
🚘 Bali's infrastructure, especially transportation, will face a major strain. Traffic is expected to increase by 20%.
🤔 Local authorities are already proposing exotic measures to combat traffic congestion – banning cars with license plates from other islands. However, it is problematic to put this into practice. The regional authorities have no such powers, and the central authorities will obviously not agree to it.
🎄 For everyone who is going to visit Bali for the holidays it is recommended to choose areas that have everything you need for a vacation. This will help to minimize movement around the island, and your mood will be much better.
@BaliNews
#transport#holidays#traffic
🚦 Bali authorities promise to avoid New Year traffic chaos
📰 After last year’s holiday gridlock, Bali police say they’re ready to keep traffic moving this festive season. A large-scale operation, Lilin Agung 2025, is now in effect across the island.
📍 Extra officers are deployed in busy tourist areas like Canggu, Seminyak, Kuta, and Uluwatu, while Ngurah Rai International Airport is operating 24/7 with heightened security and weather monitoring.
🌧️ With heavy rains and more than 1.5 million visitors expected, travelers are advised to leave for the airport well in advance and follow police instructions.
👮♂️ Authorities say all measures are in place to ensure a safe and smooth holiday travel experience
#holidays#traffic#safety@BaliNews
The increase in fines for a number of traffic violations will come into force on January 1, 2025
📌"In Article 2, the word" Law "should be replaced with the words "Federal Law", the words "after thirty days from the date of its official publication" should be replaced with the words "from January 1, 2025," the text of the amendment posted in the Duma electronic database says.
📌Under this law, failure by a driver to perform the duty to insure his civil liability, as well as driving a vehicle, if the Compulsory third Party Insurance (CTP) policy is deliberately absent, entails the imposition of an administrative fine in the amount of 800 rubles.
📌Earlier, the Parliament of the Kabardino-Balkar Republic submitted to the State Duma a bill that proposes to establish a fine for repeated violation of the Administrative Code of the Russian Federation, namely the absence of a driver's CTP policy, up to 5 thousand rubles.
CTP policy means Compulsory Third Party Insurance Policy
#news#russia#nido_russia#traffic#fine#regulations
https://t.me/nido_russia
E-commerce Conversion Crisis
E-commerce stores face a critical issue: they struggle to convert social media traffic into purchases, with conversion rates half as effective as average standards. Social media is a key source for online sales, with 64% of internet users shopping through these platforms, accounting for one-third of total online sales. The significant loss from unconverted traffic prompts stores to seek solutions, making platforms that improve conversion rates highly valuable.
Learn more about a startup addressing this issue: Read here
#Ecommerce#SocialMedia#Conversion#OnlineSales#Startup#Traffic#Retail#DigitalMarketing#Commerce#Business#Tech#Innovation#Sales#Marketing#UserExperience#Platforms#Shopping
E-commerce Conversion Crisis
E-commerce stores face a critical challenge with low conversion rates from social media traffic—about half of the general average. Despite this, social networks are a major traffic source, with 64% of users making purchases through them, accounting for a third of online sales. This gap presents significant revenue losses for stores that fail to convert this traffic, highlighting a potential market for platforms aimed at boosting conversions.
Read more: Fastfounder
#Ecommerce#Conversion#SocialMedia#Traffic#Sales#OnlineShopping#Startup#Market#Revenue#Challenges#Users#Platforms#Retail#Growth#Insights#Business#Tech#DigitalMarketing#Shopping#Income#Reports