Python — перенос локального проекта на удаленный сервер

Admin Python, Ubuntu

Переносим приложение python с локального компьютера на свой удаленный сервер.

Этот материал из цикла статей по разработке сайтов на python: от локальной разработки до развертывания на удаленном сервере.

Перед этим должен быть создан локальный проект на python.

Затем настроен удаленный сервер для Flask.

И только после этого можно приступать к переносу зависимостей и проекта на python на удаленный сервер.

У себя на компьютере

У себя на компьютере создаем файл, в котором находятся все зависимости необходимые для проекта:

pip freeze > requirements.txt

или выводим локальные зависимости и сохраняем их потом в том же файле:

pip freeze -- local
Если какие-то модули были установлены в обход стандартной процедуры (pip install модуль), то такие модули в этом файле сейчас следует закомментировать и установить на сервере отдельно.

На сервере

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

cd /home/ploshadka

Здесь создаем новую директорию для проекта, например, по названию сайта:

mkdir ploshadka.net
cd ploshadka.net
Дальше закидываем локальные данные в гит и подтягиваем их у себя на сервере: инструкция по быстрой миграции через гит. Или переносим любым другим способом.

Затем в этой директории создаем виртуальное окружение:

python3 -m venv venv

Входим в виртуальное окружение:

source venv/bin/activate

Обязательно обновляем pip:

pip install --upgrade pip

Иначе есть вероятность получить при установке других модулей ошибки вроде:

… error
ERROR: Command errored out with exit status 1:
command:

error: invalid command ‘bdist_wheel’
—————————————-
ERROR: Failed building wheel

Устанавливаем необходимые зависимости:

pip install -r requirements.txt

Выше в статье было упоминание, что некоторые модули может потребоваться установить дополнительно вручную. Сделайте это для этих модулей теми командами, которыми вы их раньше устанавливали.

Например:

pip install -i https://test.pypi.org/simple/ --extra-index-url=https://pypi.org/simple/ модуль

Дополнительная настройка на сервере

PostgreSQL

Настройка PostgreSQL. Если пользователь для БД уже был создан раннее, то создаем только новую БД::

createdb ploshadka --owner ploshadka

Заходим в postgres:

sudo -u postgres psql

Назначаем привелегии новой таблице:

GRANT ALL PRIVILEGES ON DATABASE ploshadka TO ploshadka;

Обновляем БД

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

Обновляем БД:

flask db upgrade

Обновляем в конфиге бд в параметре SQLALCHEMY_DATABASE_URI, добавляем пароль:

SQLALCHEMY_DATABASE_URI = 'postgresql://ploshadka:пароль@localhost/ploshadka'

Конфиги

Значение pbkdf2_sha512 для SECURITY_PASSWORD_HASH не трогать!

SECRET_KEY и SECURITY_PASSWORD_SALT — если будем экспортировать БД, то эти значения такие же как и для локалки.

На сайте отсутствует реклама! Значете почему?

Помогать людям - моё хобби. А навыки разработчика позволяют не парится нулевой монетизизацией этого сайта. Хотя...

Если вам помогла информация, то даже от доната в 40 рублей мне будет приятно. Докину немного, куплю латте в макдаке, вспомню за чей счет банкет и карма вам зачтется!

Но и просто оставленный комментарий благодарности ниже принесет мне улыбку радости :)

А если захочется написать всякие гадости с переходом на личности, да тоже не стесняйтесь, но обычно я отправляю такое в спам. Люблю, когда дома чисто.

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"Python — перенос локального проекта на удаленный сервер"