pip freeze requirements txt

pip freeze requirements.txt — команда, которая позволяет создать текстовый документ в котором перечислены все установленные и необходимые для работы Python приложения программные пакеты (чаще всего Django).

Список всех пакетов можно посмотреть выполнив pip freeze — стандартный вывод производится на экран. Обычно эту информацию сохраняют в файл, который оставляется в корне приложения и переносится на другой сервер вместе с ним.

 

 

Перенос проекта на Python с pip freeze и requirements.txt

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

pip freeze > requirements.txt

Если используется виртуальное окружение команду нужно выполнять в нем.

Виртуальное окружение можно активировать выполнив source /project-folder/bin/activate

 

 

Установка всех пакетов по списку производится при выполнении

pip install -r requirements.txt

 

Внесение изменений в requirements.txt вручную является не самой лучшей практикой поскольку автоматическая установка пакетов их этого файла в большинстве случаев окажется невозможна.

 

Также при запуске сайта после переноса может оказаться полезной команда (часто после переноса проект запускается, статическое содержимое при этом не отдается)

 

python manage.py collectstatic

 

Она позволяет собрать статику в STATIC_ROOT. При этом если существуют файлы с одинаковым именем обработан будет только один из них (какой файл использует сайт можно выяснить при помощи findstatic — используется так — django-admin.py findstatic /path/to/the/folder, в выводе будут все файлы изображений, CSS стилей и т.п.; также команду можно запускать с ключом —first. в этом случае в вывод попадет только первое вхождение, далее поиск прекратится).

 

Запускается проект (в случае Django) стандартно с указанием файла django-admin.py и имени проекта

python django-admin.py startproject projectname

 

 

Читайте про if __name__ == '__main__' , констркуцию, присутствующую почти в каждом Python модуле