Email or username:

Password:

Forgot your password?
Александр

Шёл по улице и хотел поделиться фотографией. Отправляю её через свой самописный телеграм-клиент, а там тишина.

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

Так и вечер прошёл, а фотографию уже прошло желание вывешивать.
В голове играет "надо было ставить линукс".
#лытдыбр

10 comments
Александр
Смотри-ка, до сих пор работает!
Iron Bug
@shuro линукс тут ни при чём. пистонятину фтопку - это аццкое говно. и никаких проблем. я выпилила эту говнину из системы и всё работает, как часы.
top.ofthe.top

> > линукс тут ни при чём.

Ну а зачем он при этом питон обновил вместе со всеми его модулями (впрочем, если это арч какой нибудь, или федора или т.п. или полный dist upgrade то не удивительно)

> > пистонятину фтопку - это аццкое говно. и никаких проблем. я выпилила эту говнину из системы и всё работает, как часы.

Ага а вместо скриптов писать на C сразу 🤦

> > Пришёл домой - библиотека слетела после обновлений линукса.

Питоновские проекты лучше запускать в питоновском venv, там по сути зависимости ставятся в директорию рядом с помощью pip, а не зависеть от модулей, установленных глобально. Ну то есть по аналогии с php composer или npm.

Впрочем, если проект зависит в том числе и от бинарных модулей (а если в проекте используется ssl/tls, то скорей всего да), мажорное обновление системы всё равно может сломать. В таком случае более надёжно изолировать проект в докере.

> > линукс тут ни при чём.

Ну а зачем он при этом питон обновил вместе со всеми его модулями (впрочем, если это арч какой нибудь, или федора или т.п. или полный dist upgrade то не удивительно)

> > пистонятину фтопку - это аццкое говно. и никаких проблем. я выпилила эту говнину из системы и всё работает, как часы.

Александр
@iron_bug @top Да, Линукс тут ни при чём сам по себе, надо переписать под venv.
top.ofthe.top

> > надо переписать под venv.

Только переписывать код там не требуется, это просто способ запуска и установки зависимостей.

Александр
@iron_bug @top Но надо разобраться с автозапуском и прочей обвязкой.
top.ofthe.top

Да там всё просто, в простейшем случае как-то так:

## Создаём venv директорию с именем "python_env"
python3 -m venv ./python_env
## Устанавливаем туда нужные модули
./python_env/bin/python -m pip install  package1 package2 ...
## Запускаем своё приложение
./python_env/bin/python  ./myproject/main.py
## или если в твоём проекте был предусмотрен setup.py:
./python_env/bin/python -m pip install ./myproject/
## вместо ./python_env/bin/python -m pip можно ./python_env/bin/pip

Ну а для автозапуска можно создать системдшный юнит файл и там прописать запуск /full/path/python_env/bin/python ./myproject/main.py

Да там всё просто, в простейшем случае как-то так:

## Создаём venv директорию с именем "python_env"
python3 -m venv ./python_env
## Устанавливаем туда нужные модули
./python_env/bin/python -m pip install  package1 package2 ...
## Запускаем своё приложение
./python_env/bin/python  ./myproject/main.py
## или если в твоём проекте был предусмотрен setup.py:
./python_env/bin/python -m pip install ./myproject/
## вместо ./python_env/bin/python -m pip можно ./python_env/bin/pip
Александр
@iron_bug @top Прошло два дня, напоролся на конфликт зависимостей (вот три года не было, а тут понеслось), пришлось освоить venv. Спасибо :)
DELETED

@shuro@friends.deko.cloud guix shell -C -m manifest.scm -- ./script.py

Go Up