summaryrefslogtreecommitdiff
path: root/PYTHON/BEGIN + PIP.md
diff options
context:
space:
mode:
Diffstat (limited to 'PYTHON/BEGIN + PIP.md')
-rw-r--r--PYTHON/BEGIN + PIP.md226
1 files changed, 226 insertions, 0 deletions
diff --git a/PYTHON/BEGIN + PIP.md b/PYTHON/BEGIN + PIP.md
new file mode 100644
index 0000000..d67c8c0
--- /dev/null
+++ b/PYTHON/BEGIN + PIP.md
@@ -0,0 +1,226 @@
+
+![[Python_шпаргалка.png]]
+
+```bash
+which python3
+which pip
+
+sudo apt install -y python3-pip
+pip install numpy
+
+sudo apt install -y python3-virtualenv
+which virtualenv
+
+# в папке проекта для ДЕактивации среды:
+deactivate
+
+#=========================================
+cd code
+mkdir pythontests
+cd pythontests
+
+python3 -m venv .venv-name
+. ./.venv-name/bin/activate
+
+nvim pyrightconfig.json
+
+{
+ "venv": "env",
+ "venvPath": "."
+}
+
+# в папке проекта для ДЕактивации среды:
+deactivate
+
+#==========================================
+# Список пакетов с зависимостями:
+pip freeze
+
+# Создаем файл с зависимостями:
+pip freeze > requirements.txt
+
+# Устанавливаем все зависимости в другом месте:
+pip install -r requirements.txt
+
+# список установленных пакетов:
+pip list
+
+# удалить пакет:
+pip uninstall <packet> -y
+
+```
+
+```sh
+# Активация в Windows:
+python -m venv venv
+.\venv\Scripts\activate
+
+# Создаем файл с зависимостями:
+pip freeze > requirements.txt
+
+# создаем файл requirements.txt (со всеми необходимыми зависимостями) и запускаем команду:
+pip install -r .\requirements.txt
+
+```
+```sh
+git clone user@address:~/packet.git
+cd packet
+
+# Создаем сам скрипт:
+vim install.sh
+
+# Вносим в него:
+apt update
+apt install -y gcc python3-dev python3-venv
+python3 -m venv env
+source env-allocation/bin/activate
+pip install wheel
+pip install -r requirements.txt
+export KEY_SECRET=''
+
+# возможно нужно дать разрешение на запуск!
+sudo sh ./install.sh
+
+sudo python3 ./runner.py
+
+```
+=========================
+Вот как поместить Python-программу в systemd для автозапуска:
+
+## 1. Создайте unit-файл для systemd
+
+Создайте файл в `/etc/systemd/system/` (для системных сервисов) или `~/.config/systemd/user/` (для пользовательских сервисов):
+
+bash
+
+sudo nano /etc/systemd/system/myapp.service
+
+## 2. Пример конфигурации unit-файла
+
+ini
+
+[Unit]
+Description=My Python Application
+After=network.target
+
+[Service]
+Type=simple
+# Если используете виртуальное окружение:
+ExecStart=/path/to/venv/bin/python /path/to/your/app.py
+# Или без виртуального окружения:
+# ExecStart=/usr/bin/python3 /path/to/your/app.py
+
+# Рабочая директория
+WorkingDirectory=/path/to/your/app/directory
+
+# Пользователь для запуска (опционально)
+User=username
+Group=groupname
+
+# Перезапуск при ошибке
+Restart=always
+RestartSec=5
+
+# Переменные окружения
+Environment="PYTHONPATH=/path/to/your/app"
+Environment="DATABASE_URL=mysql://user:pass@localhost/db"
+
+[Install]
+WantedBy=multi-user.target
+
+## 3. Для приложений с зависимостями (виртуальное окружение)
+
+ini
+
+[Service]
+Type=simple
+ExecStart=/home/user/myapp/venv/bin/python /home/user/myapp/main.py
+WorkingDirectory=/home/user/myapp
+Environment="PATH=/home/user/myapp/venv/bin"
+
+## 4. Основные команды для управления
+
+bash
+
+# Загрузить изменения конфигурации
+sudo systemctl daemon-reload
+
+# Запустить сервис
+sudo systemctl start myapp
+
+# Остановить сервис
+sudo systemctl stop myapp
+
+# Включить автозапуск при загрузке
+sudo systemctl enable myapp
+
+# Проверить статус
+sudo systemctl status myapp
+
+# Просмотреть логи
+sudo journalctl -u myapp -f
+
+## 5. Полезные опции для Python-приложений
+
+- **`Restart`** - политика перезапуска:
+
+ - `no` - не перезапускать
+
+ - `on-success` - только при успешном завершении
+
+ - `on-failure` - при ошибке (рекомендуется)
+
+ - `always` - всегда перезапускать
+
+- **`StandardOutput`/`StandardError`** - куда перенаправлять вывод:
+
+ ini
+
+ StandardOutput=journal
+ StandardError=journal
+ # Или в файл:
+ StandardOutput=file:/var/log/myapp.log
+ ## 6. Пример для Flask/Django приложения
+
+ini
+
+[Unit]
+Description=My Flask Web Application
+After=network.target mysql.service
+
+[Service]
+Type=simple
+User=www-data
+Group=www-data
+WorkingDirectory=/var/www/myapp
+ExecStart=/var/www/myapp/venv/bin/gunicorn --workers 3 --bind unix:/tmp/myapp.sock wsgi:app
+Environment="FLASK_ENV=production"
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
+
+## 7. Проверка и отладка
+
+bash
+
+# Проверить синтаксис конфигурации
+sudo systemd-analyze verify /etc/systemd/system/myapp.service
+
+# Тестовый запуск без systemd
+sudo -u username /path/to/python /path/to/app.py
+
+# Подробные логи
+sudo journalctl -u myapp -n 100 -f
+
+## Советы:
+
+1. Убедитесь, что Python-скрипт имеет права на выполнение
+
+2. Используйте абсолютные пути во всех настройках
+
+3. Для разработки можно запускать как user-сервис без sudo
+
+4. Для приложений с GUI может понадобиться `Environment="DISPLAY=:0"`
+
+=====================