Digitable: Channel
132 subscribers
143 photos
12 videos
3 files
106 links
digitable.ru | Твой путеводитель в разработке ПО, от стажера/джуна до техлида, ex-workers и workers Microsoft, Xsolla, Roadmunk, Adjust, Контур, НЛМК, Т1, Аквелон
Download Telegram
#advanced #development #warcraft #ai #voiceover #addons #habr #articles #python #games #tts #pytorch

На хабре новую статью написал, можно почитать, о том как я World Of Warcraft по-русски заставлял говорить

https://habr.com/ru/articles/818513/

Здравствуйте-здравствуйте, играю я значит в классический World of Warcraft и понимаю, что игра тосклива из-за отсутствия более-менее озвученных квестов. Конечно, инди-студия Метелица не способна озвучить всю свою игру, да и понятно, что сюжет развивается, а люди имеют свойство менять работу или, да это печально, физической гибели, как например случилось с озвучкой Артаса Менетила в Warcraft III: Frozen Throne.

В общем, заваривайте чай, как и все мои предыдущие публикации, эта статья в формате (б|в)лога.
🔥2
#all #development #python #packages #environment #dependencies #pip #pipx #conda #poetry #pyflow #pdm #venv

Какие способы работы с пакетами в Python вы знаете?

Да и вообще зачем всё это надо?

Смысл в том, что проекты редко делаются без стороннего набора библиотек, особенно, когда строите что-то поверх фреймворков. Так и выходит, что каким-то образом надо следить чтобы зависимости находились в одном месте и их можно было подтягивать вне зависимости от разработчика и среды окружения. Будь это другой разработчик на другой ОС или же CI/CD-агенты.

Если не использовать менеджеры пакетов/зависимостей, тогда всё будет храниться в вашем общем кеше, да и другое окружение/разработчик просто-напросто не будет знать какие версии и каких пакетов ставить.


Что есть в Питоне?

Во-первых, pip, который можно использовать в следующем виде:

collapsed:: true
установка - pip install torch
установка конкретных версий - pip install torch==2.2
установка из конкретных registries, множества пакетов, а также с привязкой к версии питона - pip3.10 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
удаление - pip uninstall torch
листинг - pip show torch
через файл с указанием версий, например так:

# requirements.txt
torch==2.2

И последующая установка

pip3.10 install -r requirements.txt

Или удаление

pip3.10 uninstall requirements.txt

Но пакеты по-прежнему будут кешироваться, а значит нужно еще и пользоваться виртуальным окружением, чтобы использовать конкретную директорию

Единожды создаёте эту самую директорию,

python -m venv .venv

А далее, каждый раз в вашем терминале в папке проекта вызывайте . .venv/bin/activate, чтобы питон знал, что сейчас он работает с локальными модулями вместо глобальных


Во-вторых, pipx, который делает тоже самое что и pip, но уже сразу с venv

Во-третьих, poetry, который еще и в сборку умеет и в отслеживание зависимостей и огромную кучу всего
pipx install poetry==1.2.0

Есть там еще приколу вроде inject-а зависимостей, например


pipx inject ipython matplotlib


Чтобы доставить matplotlib к ipython

В-четверых, setuptools в роли такого же file-based указателя зависимостей
pip install setuptools

А далее в pyproject.toml указываем зависимости


[project]
name = "mypackage"
version = "0.0.1"
dependencies = [
"requests",
'importlib-metadata; python_version<"3.10"',
]

И можем собирать python -m build

В-пятых, conda, с лицензией BSD, между прочим
Создание виртуальных окружений

conda create -n digitable python=3

Использование окружения

source activate digitable

И установка разумеется conda install numpy

В-шестых, pdm, мне он нравится больше

Старт проекта - pdm init

Установка зависимостей


pdm add requests flask


В-седьмых, pyflow, на его вдохновении был создан pdm работает по сути также как и pipx, список команд такой же примерно

По сути на большей части проектов используется обычный `pip`, `pipx` или `poetry`
Что интересно, это то, что коммьюнити питона-петона-удава-петухона никак не можем договориться делать что-то одно, хотя тот же javascript тоже в ту же степь пошел, теперь там `yarn`, `npm`, `pnpm` и имхо из-за вендорства Microsoft над Typescript скоро будет `nuget`, хотя ЕМНИП npm теперь тоже им принадлежит
#docs #python

Ссылки для публикации

Доки по pip: https://pip.pypa.io/en/stable/installation/
Доки по pipx: https://github.com/pypa/pipx
Доки по venv: https://docs.python.org/3/library/venv.html
Доки по poetry: https://python-poetry.org/
Доки по setuptools: https://pypi.org/project/setuptools/
Доки по conda: https://conda.io/projects/conda/en/latest/user-guide/getting-started.html
Доки по pdm: https://github.com/pdm-project/pdm
Доки по pyflow: https://github.com/David-OConnor/pyflow


А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog

А еще если вам понадобилась карьерная консультация, подготовка к интервью или настройка чего-либо, или даже, например, парсер/скраппер на питоне то можно ознакомиться с услугами в нашем магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!

Have a fun!