Что делать если нужно поставить какую-то 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
重审社会学理论大炮:马克斯·韦伯
Max Weber Was a Class-Conscious Champion of the Bourgeoisie
这篇文章可以看看,提到了马克斯·韦伯社会理论的局限和矛盾,他的价值中立「立场」以及某些视角的批评。
马克斯·韦伯作为社会学经典三大家之一,他许多理论贡献奠定了西方社会学基础,理解社会学/宗教社会学/以及社会政治经济领域的成就,国内像北大南大社会学就比较喜欢整这些经典大家的理论。
韦伯作为反马克思主义的代表,主要被美国社会学家帕森斯带火。韦伯以「价值中立」为理论塑形,然而文章揭示了韦伯的理论受到阶级立场和政治倾向的影响,为资产阶级辩护,试图将资本主义过度浪漫化、制度精神化(spiritualize)、伦理标准化,而忽视了资本主义本质,且对社会变革持悲观态度,韦伯对无产阶级(proletariat)没有信心。
韦伯对资本主义的看法放在现在来思考是很有意思的,他的著作《新教伦理与资本主义精神》也可以看看。
最后再推荐个哲学家 Eudald Espluga,他的新理论「glittered cage」就源于韦伯的「理性牢笼」和我们常提到的哲学家 Mark Fisher 风格影响,这里可以串一串。[1]
Reference
[1]Why pop philosopher Mark Fisher fascinates young leftists
#philosophy#sociology
Ethnosociology lecture 1. Introduction
The first section describes the major sources and schools related to ethnosociology (sociology, anthropology, ethnology, cultural, social and structural anthropology, etc.), both foreign and Russian. The basic terminological apparatus is outlined.
#Ethnosociology#sociology#anthropology#AlexanderDugin
看到贵校的包容,我感到很欣慰,恰逢5.17不再恐同日。
招生政策 清华附中国际学校欢迎所有认同学校愿景与使命、理念与文化、培养目标与课程体系的家庭及申请人,不会对性别、种族、民族、残疾、宗教、性取向、性别认同和国籍存在歧视。
Admissions Policies Tsinghua University High School International welcomes all families and applicants who agree with the school's vision and mission, philosophy and culture, and goals and curriculum. There is no discrimination against gender, race, disability, religion, sexual orientation, gender identity, or nationality.
5月17日是"国际不再恐惧同性恋、跨性别与双性恋日(International Day Against Homophobia, Transphobia and Biphobia)”。1990年的这一天,世界卫生组织决定,将同性恋从《疾病和有关保健问题的国际统计分类》名单中去除。
#Anthropology#Comment#Emotion#Psychology#Society#Sociology#Thought
🚀 AI Event to Showcase Diverse Applications in Pop Culture
An event titled 'Super Creator Live - Creating Pop Culture with Prompts' is set to take place this Saturday. According to BlockBeats, the event is co-hosted by Beating and West Sea Voice and will feature ten demo works selected from numerous submissions. Participants include developers with deep technical expertise, influential content creators, and professionals from finance, music, and podcast industries.
The diverse backgrounds of the creators promise to offer intriguing perspectives on AI's integration into unexpected fields such as gaming, interactive design, sociology, emotional support, and metaphysics. Following the demo presentations, several prominent guests will engage in a roundtable discussion, focusing on the essence of creation and exploring how to define expression in the era of AI.
With only two days left until the event, interested individuals are encouraged to register promptly. The event will take place on April 11 at 13:30 UTC+8, with the location details available upon registration.
#AI#PopCulture#Event#Creators#Gaming#InteractiveDesign#Sociology#EmotionalSupport#Metaphysics#AIIntegration#Roundtable#Finance#Music#Podcast#Beating#WestSeaVoice#Demo#AIInCreation#Tech#ContentCreators