PyLinux - Всё о Linux, Python и IT
10.4K subscribers
1.4K photos
39 videos
2 files
1.27K links
У нас ты найдешь 👇

- библиотеки и скрипты python
- инструменты linux
- полезный софт
- важнейшие новости из мира IT

Связь с админом: @ghostifix

Купить рекламу: https://telega.in/c/pylinux0

Архив: @pylinux0_archive
Download Telegram
🔜 Fedora Linux 42 уже здесь: что нового в свежем выпуске дистрибутива

В статье разберусь, что появилось в Fedora 42, какие редакции доступны, что нового в окружениях и на каких архитектурах всё это можно запускать. Не только для фанатов Workstation.

🖥 Перейти к статье

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤‍🔥1🔥1
Переоценил 😬

😎 PyLinux | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁50👍2🔥2
🌐 Автоматическое обновление списка доступных сетей Wi-Fi в Linux

Этот скрипт выводит список доступных Wi-Fi сетей с уровнем сигнала, обновляя его каждые несколько секунд. Полезно для диагностики, выбора наилучшей точки доступа или анализа сети.

⚙️ Исходный код

#!/bin/bash

# Интервал между обновлениями
INTERVAL=5

# Интерфейс Wi-Fi (измените при необходимости)
WIFI_INTERFACE="wlan0"

while true; do
clear
echo "📶 Доступные Wi-Fi сети:"
nmcli -f SSID,SIGNAL,BARS device wifi list ifname "$WIFI_INTERFACE" | sort -r -k2
sleep $INTERVAL
done


🟢 Использует nmcli для получения информации о Wi-Fi
🟢 Показывает силу сигнала и SSID
🟢 Обновляет список каждые несколько секунд

➡️ Удобно запускать в терминале для подбора оптимальной точки доступа или отладки сетевых проблем

😎 PyLinux | #scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤‍🔥7🔥2
✈️

😎 PyLinux | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
👍37❤‍🔥3😁2
👩‍💻 Python 3.14 | Upcoming Changes [EN]

В этом видео автор собрал почти все важные изменения, которые ждут нас в Python 3.14 — релиз беты уже через месяц, так что пора узнать, чем он нас удивит.

📱 Ссылка на источник

😎 PyLinux | #videos
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤‍🔥3
👩‍💻 Python: Как не убить производительность при сериализации больших объектов

json.dumps(big_dict, indent=4)


✔️ Красиво
Медленно
Жрёт память
Тормозит GC

Выбираем правильный инструмент:

- orjson — ультрабыстрый, работает с bytes, 10-20x быстрее стандартного
- ujson — ещё один быстрый кандидат
- msgpack — если JSON не обязателен

# Сравнение скорости
import json, orjson, time

data = {'x': list(range(100000))}

t1 = time.time()
json.dumps(data)
print("json:", round(time.time()-t1, 4))

t2 = time.time()
orjson.dumps(data)
print("orjson:", round(time.time()-t2, 4))


🔜 Результат:

json: 0.0069
orjson: 0.0008


📌 Разница — в разы, особенно при больших данных.

💥 Дополнительно:

orjson умеет в сериализацию datetime и numpy
— Можно настроить option=orjson.OPT_NAIVE_UTC | orjson.OPT_SERIALIZE_NUMPY
orjson.dumps() возвращает байты, не забудь .decode() при необходимости

😎 PyLinux | #python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤‍🔥5
🔜 История о потоке UI, зависавшем при вызове ядра

Разбираем кейс с зависающим UI-потоком, чей стек пропадает из дампа — всё потому, что он "ничего не делает" и система его выгружает. Как такое вообще дебажить — читаем в статье.

🖥 Перейти к статье

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤‍🔥1
⚙️ Поиск недавно установленных пакетов в Linux (dpkg и rpm)

Иногда нужно выяснить, какие пакеты были недавно установлены или обновлены — например, после настройки системы или отладки багов. Это можно сделать с помощью встроенных инструментов.

📌 Полезные команды

# Debian/Ubuntu: показать 20 последних установленных пакетов
grep " install " /var/log/dpkg.log | tail -n 20

# Или, если лог разрезан, ищем во всех
zgrep " install " /var/log/dpkg.log* | tail -n 20

# RedHat/CentOS/Fedora: список последних установленных пакетов
rpm -qa --last | head -n 20

# Узнать, когда конкретный пакет был установлен
rpm -q --last nginx


🟢 Поддерживает аудит системы после обновлений
🟢 Удобно при откате, если что-то сломалось после установки
🟢 Помогает контролировать изменения в проде

🗣 Особенно полезно для админов и DevOps-инженеров, следящих за безопасностью и стабильностью серверов.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤‍🔥1
🤔

😎 PyLinux | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣36❤‍🔥1
⚙️ Библиотека Python: Halo

Halo — это небольшая, но эффектная библиотека для отображения анимированных спиннеров в терминале. Особенно полезна при создании CLI-инструментов и скриптов, где важно визуально показать пользователю, что что-то происходит.

Подходит разработчикам, создающим удобные интерфейсы командной строки или оформляющим вывод фоновых операций.

⚙️ Пример использования

from halo import Halo
import time

# Инициализируем спиннер
spinner = Halo(text='Обрабатываем данные...', spinner='dots')

spinner.start()
time.sleep(3) # Имитация длительной операции
spinner.succeed('Готово! ')


Преимущества:

🟢 Удобный и наглядный способ показать прогресс
🟢 Множество стилей спиннеров (dots, line, bounce...)
🟢 Поддержка автоматического управления статусами (succeed, fail)

✔️ Установка

pip install halo


➡️ Ссылка на документацию

😎 PyLinux | #python_libs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥7
🔜 И снова USB-IP — сервер теперь с автобиндом и детачем и сам подхватит ключ клиент

Обновлённая настройка USB-IP: теперь сервер сам цепляет устройства, даже после миграции виртуалки. Покажу, как всё работает с autobind и detach — без плясок с бубном и потери ЭЦП.

🖥 Перейти к статье

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤‍🔥1
🧰 Мониторинг активности сетевого интерфейса в реальном времени

Этот скрипт показывает скорость входящего и исходящего трафика на заданном интерфейсе. Полезен для отладки сетевых проблем и анализа нагрузки.

⚙️ Исходный код

#!/bin/bash

# Сетевой интерфейс (замените при необходимости)
INTERFACE="eth0"
INTERVAL=1

echo "🔍 Мониторинг сетевого интерфейса: $INTERFACE"
echo "Нажмите Ctrl+C для выхода."
echo

while true; do
RX1=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
TX1=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
sleep $INTERVAL
RX2=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
TX2=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)

RX_RATE=$(( (RX2 - RX1) / INTERVAL / 1024 ))
TX_RATE=$(( (TX2 - TX1) / INTERVAL / 1024 ))

echo "⬇️ IN: ${RX_RATE} KB/s | ⬆️ OUT: ${TX_RATE} KB/s"
done


🟢 Использует системные файлы /sys/class/net/... для подсчёта байт
🟢 Показывает входящий и исходящий трафик
🟢 Можно адаптировать под любой сетевой интерфейс

➡️ Идеально для анализа загрузки сети без установки дополнительных утилит

😎 PyLinux | #scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥2❤‍🔥1
🔄 zip() и распаковка — синхронный перебор

Когда тебе нужно перебрать сразу несколько коллекций, не мучайся с индексами — просто используй zip():

✔️ Пример:

names = ['Alice', 'Bob', 'Charlie']
scores = [85, 92, 78]

for name, score in zip(names, scores):
print(f"{name} scored {score}")


📌 Вывод:
Alice scored 85  
Bob scored 92
Charlie scored 78


🔁 Обратная операция: распаковка с zip(*iterables)

Хочешь развернуть список пар обратно в два списка? Вот пример:

pairs = [('a', 1), ('b', 2), ('c', 3)]
letters, numbers = zip(*pairs)

print(letters) # ('a', 'b', 'c')
print(numbers) # (1, 2, 3)


Это часто используется в обработке CSV, баз данных, API, логов и пр.

💡 Запомни:

👍zip() объединяет несколько коллекций в кортежи по индексам.
👍 zip(*iterable) делает обратное — распаковывает их.
👍 Это удобно, лаконично и Pythonic.

PyLinux | #scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤‍🔥4
Было? 😬

😎 PyLinux | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁61💯8👍2🤣1
👩‍💻 WINE И LINUX , ЧТО ТАКОЕ WINE И КАК ОН РАБОТАЕТ

Автор расскажет, как работает Wine — не эмулятор, а настоящая реализация Windows API под Linux. Поговорим о том, как он запускает виндовые игры, что изменилось в проекте и зачем вообще нужен.

📱 Ссылка на источник

😎 PyLinux | #videos
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
🔜 Tinker WriterDeck: Linux для тех, кто работает с текстом. Превращаем ноутбук в печатную машинку

Рассказываю про WriterDeck — минималистичный дистрибутив для старых ноутов, где вы работаете только с текстом, без отвлекающих штук вроде браузера или мессенджеров. Идеален для фокусировки.

🖥 Перейти к статье

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍10🌚2❤‍🔥1
🔍 Поиск неиспользуемых пакетов в Linux (Debian/Ubuntu)

Со временем система может накопить множество неиспользуемых библиотек и зависимостей. Эти команды помогут найти и удалить их, освободив место и ускорив систему.

📌 Полезные команды

# Показать список неиспользуемых пакетов
sudo apt autoremove --dry-run

# Удалить неиспользуемые зависимости
sudo apt autoremove

# Очистить кеш пакетов
sudo apt clean

# Проверить вручную установленные и редко используемые пакеты
apt-mark showmanual | xargs apt-cache show | grep -E 'Package:|Priority:'

# Найти "висячие" зависимости (с помощью deborphan)
sudo apt install deborphan
deborphan


🟢 autoremove удаляет неиспользуемые зависимости
🟢 clean освобождает место, очищая кэш
🟢 deborphan ищет библиотеки без владельцев

🗣 Эти инструменты помогают поддерживать систему в чистоте, особенно на серверах с ограниченным дисковым пространством.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥4
И сразу забыл зачем вообще его открывал

😎 PyLinux | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁41👍7🔥1
⚙️ Библиотека Python: clint

clint — это лёгкая библиотека для создания красивых CLI-приложений. Она предлагает удобные инструменты для работы с цветным выводом, прогресс-барами и простым вводом пользователя.

Подходит разработчикам, которые хотят быстро добавить форматирование текста и удобство в свои скрипты без тяжёлых зависимостей.

⚙️ Пример использования

from clint.textui import colored, puts, prompt, progress

# Цветной вывод
puts(colored.green("Успешно выполнено!"))
puts(colored.red("Произошла ошибка."))

# Прогресс-бар
for i in progress.bar(range(100)):
pass # имитация работы

# Запрос ввода
name = prompt.query("Введите ваше имя")
puts(f"Привет, {name}!")


Преимущества:

🟢 Простая работа с цветами в терминале
🟢 Удобные прогресс-бары и запросы ввода
🟢 Минимальные зависимости, лёгкая интеграция в проекты

✔️ Установка

pip install clint


➡️ Ссылка на документацию

😎 PyLinux | #python_libs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤‍🔥1
🔜 Графика в Linux — как это вообще устроено

Расскажу, что на самом деле стоит за словами "графическая среда" в Linux, чем Gnome отличается от Wayland, и как всё это работает без скучной технички.

🖥 Перейти к статье

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥3🤔1