Что делать если нужно поставить какую-то 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
А прикиньте, санкций навводили, а потом поняли, что себе в ногу стрельнули.
И как польется #sp500 Америка. И как охрнеют инвесторы. И как начнут давить на Трампа. И снова он побежит звонить Путину. И снова будет 2 часа разговоров по телефону. И снова будет угрожать санкциями и ракетами… и снова….
#usa#sp500
Пирамида доходности S&P 500 по годам
На этом графике показана годовая доходность S&P 500 за последние 151 год на основе данных TradingView.
Большинство крупных рейтинговых агентств ожидают, что в 2025 году индекс S&P 500 обеспечит положительную доходность в диапазоне от 10% до 20%.
Однако, другие аналитики отмечают, что третий год подряд с доходностью в 20% и более — это большая историческая редкость.
❓А вы как считаете? 👇
#рынки#золото#SP500
👆 Обратите внимание, что индекс SP500 вблизи исторических максимумов, но если его номинировать в золоте - то мы как раз обновляем минимумы с 2016 года!
⚡️ПОЛУЧАЕТСЯ НЕ ФОНДОВЫЙ РЫНОК СЕЙЧАС СИЛЬНЫЙ - А ДОЛЛАР КРИТИЧЕСКИ СЛАБЫЙ...
🤔 Это намекает на то, что в случае более резкого обесценивания доллара мы можем не увидеть распродажи на индексе - он вполне может продолжить рост...
🎁 There is just over a day left until the end of our trading contest, in which the top 10 from the leaderboard will receive a share of the prize pool in💵1,000.
Conditions of participation:
➡️ Make at least one order on S&P 500 (long & short) with a volume ≥ $10.
➡️ The sum of trading volumes for all orders and pairs during the tournament period also counts.
➡️ Snapshot of current balances was made a minute before the post was published. So everyone has an equal chance
🥇Prize Breakdown:
1st – $250
2nd – $200
3rd – $150
4th – $100
5th – $75
6th–7th – $50 each
8th–10th – $25 each
11th–15th – $20 each
16th–20th – $15 each
21st–30th – $10 each
🗓Contest Dates:
Start: today, May 16
Finish: June 1, 18:00 UTC
Prizes will be sent to the contest winners on June 10th.
⚡️Telegram Mini-App
⚡️Web Trading Platform
At the moment, 36 traders have taken part in the event for a total of $400,000, and the minimum trading volume to receive a prize is only $480. Hurry up and get your prize!
🏆Leaderboard🔥
#SP500#Contest#Crypto
🔥S&P 500: Ралли продолжается! 🔥
📊Аналитики Wells Fargo прогнозируют, что индекс S&P 500 продолжит рост благодаря снижению реальных ставок и устойчивым инфляционным ожиданиям. На прошлой неделе индекс поднялся на 1,6%, а снижение ставки ФРС на 50 базисных пунктов подогрело оптимизм насчёт «мягкой посадки» экономики.
__________________________________
💬По их мнению, акции быстрорастущих компаний покажут наибольший прирост, особенно в секторах IT, потребительских товаров и здравоохранения. В то же время акции малых и средних компаний будут отставать от крупных. Ключевым драйвером останется дальнейшее снижение реальных ставок, что поддержит восходящий тренд.
📃Думаю в ближайшее время возможен небольшой откат, который не стоит расценивать как полноценную коррекцию, а скорее как проявление обычной рыночной волатильности. Я обозначаю 2ключевых уровня поддержки — 5400 и 5200, до которых, в крайнем случае, мы можем откатиться. Ожидаю, что до Нового года S&P 500 обновит свои максимумы, но уже в начале следующего года, особенно в первой декаде, вероятна коррекция. Рынок не способен мгновенно отреагировать на снижение процентных ставок, и для восстановления экономики потребуется время. До конца года сохраняется позитивный настрой, после чего наступит фаза стабилизации и коррекции.
#АнализРынка#КриптоНовости#SP500
🧪The S&P500 contest is over. Time to give away the prizes!
Our trading contest on S&P500 has ended in ⚡️Strom Trade. Prize fund 💵1,000 distributed among the top 30 traders. If you participated, check yourself in the list of winners and make sure that the full TON wallet address is indicated there so that we can send the prizes.
🏆List of Winners
#SP500#Contest#Trading
💵Результаты инвестирования на фондовом рынке.
Результаты промежуточные, это долгосрочный портфель. В нём бумаги хранятся уже несколько лет.
Планирую только докупать и ребалансировать...
#sp500#NQ100