Что делать если нужно поставить какую-то 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
烏克蘭人面對困境,都不忘支持香港人!
佢寄語香港人要奮戰到底,終有一日可將中國驅逐出香港!"Hong Kong is not China in the same way that Ukraine is not Russia. It never has been. We will fight until the last man.", says the director of the Association of Ukrainians in Great Britain.
Despite the toughest moment of Ukrainian, they still stand with Hongkongers.
He told us, we shall keep fighting, China must then be expelled from Hong Kong one day.
#StandwithUkraine#StandwithHongkong
@UkrClubDniproMcr
UN Alarm: Hong Kong's Freedoms Under Severe Threat
UN Chief Guterres' report reveals:
• Activist Chow Hang-tung arbitrarily arrested
• Threats of criminal charges for discussing ongoing cases
• Death threats against Jimmy Lai's family and lawyers
Key concerns:
- Potential criminal liability for UN cooperation
- Attacks on legal representation
"We won't be silenced," says Sebastian Lai, Jimmy's son.
UN Human Rights Council to discuss during 57th session (Sept-Oct 2023).
World's response crucial as Hong Kong's autonomy erodes.
#StandWithHongKong#PressFreedom#UNReport
The HKDM team wish everyone a happy new year! We wish that all of us will continue fighting until our Hong Kong is back!
#fightforfreedom#standwithhongkong#HKDMovement
Due to China's increasing influence and the implementation of a new national security law, Hong Kong's economic position has been severely shaken. The erosion of the city's autonomy and the tightening grip of Chinese authorities have raised concerns among international businesses, leading to a decline in investments and a loss of confidence in Hong Kong as a global financial center. This, coupled with the redirection of cargo and the restructuring of shipping routes, has further diminished Hong Kong's economic prospects.
https://www.rfa.org/cantonese/news/hk-link-04042024161154.html
#ChinaInfiltration#NSL#freeHK#standwithhongkong
Wish everyone a happy Lunar New Year! Bring glory back to Hong Kong in the year of dragon!
#HKDMovement
#glorytoHongKong
#lunarnewyear
#standwithhongkong
監獄規則修訂 引發強烈憂慮
香港政府最新修訂《監獄規則》,容許懲教署以「維護國安」為由,限制律師、宗教人員與在囚人士接觸,立即生效,卻延至 7 月 23 日才提交立法會審議。
此舉可能完全封鎖數以千計的政治犯與外界聯繫。外界無從得知港府在囚室內的行為,尤其中懲教機構推行「思想重整」計劃,更有年輕囚犯曾透露遭受性侵犯。
這不是安全措施,是孤立、是剝奪。
Prison Rule Changes in Hong Kong Spark Alarm
The Hong Kong government’s new amendments to prison rules now permit correctional authorities to restrict inmate access to lawyers and religious staff for “national security” reasons. Though enacted on July 18, the changes won’t face legislative review until July 23.
This effectively blocks thousands of political prisoners from contacting the outside world. The public may never know what happens behind prison walls—especially as reports emerge of indoctrination programs and teenage inmates alleging sexual abuse.
This isn’t about security. It’s isolation, erasure, and silencing.
#silencingHongKong#NSL#PoliticalPrisonersHK#StandWithHongKong
《Harbour of Freedom First Issue》 Excerpt
Race to Campaigns overseas in Aug-Sep
Please download the full version of the first issue on Google drive
PDF(CN):
https://drive.google.com/file/d/1Vms9WnuNSoJtPOLOxf32ONYYZCKo6ULL/view?usp=sharing
PDF(ENG):
https://drive.google.com/file/d/1Qya_BexfjcfehxghTLVOpXteuXVwA-w-/view?usp=sharing
#國際戰線#HongKong#StandwithHongKong
#香港#抗爭#反送中
Tse Wai-chun’s Parting Shot: Too Little, Too Late,
In a jaw-dropping farewell speech, pro-#Beijing lawmaker Tse Wai-chun compared #HongKong’s 1997 handover to the Soviet Iron Curtain, the Khmer Rouge massacres, and #Nazi concentration camps.
He didn’t stop there. Tse mocked “panda tours” and “red tourism” as “neither authentic, nor unique,” and bizarrely called for “colonial tourism,” insisting even tea stains on old Yixing teapots should be preserved.
But let’s not be fooled. For years, Tse voted in lockstep with Beijing’s agenda, opposing the will of #Hongkongers. From suppressing democratic reforms to backing draconian laws, his record is clear. Now, as rumors swirl that he’s been cast aside by the very establishment he served, he suddenly speaks out?
This isn’t courage. It’s convenience.
Tse’s last-minute theatrics don’t erase years of complicity. Hongkongers deserve leaders who stand with them when it matters—not just when the political winds shift.
#FreeHK#StandWithHongKong