Email or username:

Password:

Forgot your password?
Top-level
Iron Bug
@shuro линукс тут ни при чём. пистонятину фтопку - это аццкое говно. и никаких проблем. я выпилила эту говнину из системы и всё работает, как часы.
6 comments
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. Спасибо :)
Go Up