Мой app.json выглядит так

{
    "scripts": {
      "dokku": {
        "predeploy": "poetry run python manage.py collectstatic --noinput && poetry run python manage.py migrate"
      }
    }
}

И это дает эту ошибку

 !     Predeploy command declared: 'poetry run python manage.py collectstatic --noinput && poetry run python manage.py migrate'
remote: execution of 'poetry run python manage.py collectstatic --noinput && poetry run python manage.py migrate' failed!
       Creating virtualenv foxflash-9TtSrW0h-py3.6 in /app/.cache/pypoetry/virtualenvs
       Traceback (most recent call last):
         File "manage.py", line 9, in main
           from django.core.management import execute_from_command_line
       ModuleNotFoundError: No module named 'django'
       The above exception was the direct cause of the following exception:
       Traceback (most recent call last):
         File "manage.py", line 20, in <module>
           main()
         File "manage.py", line 15, in main
           ) from exc
       ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

Не уверен, что еще попробовать, если честно.

0
Jonathan 14 Июн 2020 в 20:44

1 ответ

Лучший ответ

Вы видите, что virtualenv не активирован. Что странно, ведь с этим должна справиться поэзия.

Однако, например, героку не поддерживает поэзию.

Вы можете использовать этот сборочный пакет: https://elements.heroku.com/buildpacks/moneymeets/python-poetry- buildpack

Согласно документации, сбор статик должен происходить автоматически во время развертывания: https://devcenter.heroku.com/articles/django-assets# collectstatic-во время сборки

И наконец: buildpack поэзии создает только файл requirements.txt, который затем устанавливается с помощью pip с помощью регулярного пакета сборки heroku python.

1
Roland van Laar 14 Июн 2020 в 18:47