Как спасти проект django от негодного virtualenv - PullRequest
0 голосов
/ 10 июня 2018

У меня есть базовый сайт, использующий django / wagtail, который у меня был в virtualenv.В основном я работал на устройстве nas с процессором ARM.Я недавно перенес его на виртуальную машину на своем ноутбуке x86-64 и не смог его использовать.

Я понял почему, усвоил трудный путь, что virtualenv не является механизмом упаковки.Мне просто интересно, каким «лучшим» способом было бы спасти проект django и, возможно, каким-то образом получить список пакетов pip, установленных на virtualenv (так как pip freeze -r не будет работать из-за двоичного файла pip для ARM).

Есть ли простой способ сделать то, что я спрашиваю, или мне лучше просто скопировать файлы django и воссоздать virtualenv?

1 Ответ

0 голосов
/ 10 июня 2018

Обычно вы создаете файл requirements.txt в своем проекте и синхронизируете его с установленными пакетами.https://pip.pypa.io/en/stable/user_guide/#requirements-files

Каждый раз, когда вы делаете pip install some_package, вы должны добавить этот пакет в файл needs.txt.Убедитесь, что вы указали версию.Например, pip install wagtail установка Wagtail запускается.Вы увидите, что выбрал последний.Например, «2.1».Добавьте wagtail==2.1 к вашим требованиям. Txt

Обратите внимание, что pip freeze сбросит все установленные пакеты.Но обычно вы бы помещали пакеты «верхнего уровня» (пакеты, которые вы установили) в файл needs.txt, а НЕ пакеты вниз по дереву зависимостей.Поскольку зависимости могут измениться при обновлении пакета «верхнего уровня».

Чтобы ответить на ваш вопрос:

Создайте новый virtualenv.Проверьте каталог site-packages вашего сломанного virtualenv.Все установленные (но неработающие) пакеты находятся там.Включая используемые версии.Установите все из них в новом env.Например pip install wagtail==2.1

...