ImportError: нет модуля с именем «decouple» при развертывании на Heroku

Я пытался развернуть свой проект django на heroku из heroku cli. Итак, я создал приложение, а затем запустил git push heroku master из каталога проекта. Затем я получил ошибки:

remote: -----> $ python manage.py collectstatic --noinput 
remote:      Traceback (most recent call last): 
remote:          File "manage.py", line 15, in <module> 
remote:            execute_from_command_line(sys.argv) 
remote:          File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line 
remote:            utility.execute() 
remote:          File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/__init__.py", line 317, in execute 
remote:            settings.INSTALLED_APPS 
remote:          File "/app/.heroku/python/lib/python3.5/site-packages/django/conf/__init__.py", line 56, in __getattr__ 
remote:            self._setup(name) 
remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/conf/__init__.py", line 43, in _setup remote:            self._wrapped = Settings(settings_module) 
remote:          File "/app/.heroku/python/lib/python3.5/site-packages/django/conf/__init__.py", line 106, in __init__ 
remote:            mod = importlib.import_module(self.SETTINGS_MODULE) 
remote:          File "/app/.heroku/python/lib/python3.5/importlib/__init__.py", line 126, in import_module 
remote:            return _bootstrap._gcd_import(name[level:], package, level) 
remote:          File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
remote: File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
remote:          File "<frozen importlib._bootstrap>", line 958, in
_find_and_load_unlocked 
remote:          File "<frozen importlib._bootstrap>", line 673, in _load_unlocked 
remote:          File "<frozen importlib._bootstrap_external>", line 665, in exec_module 
remote:          File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed 
remote:          File "/tmp/build_93c58c906371cd0110470b6bb3ccecc1/funderpreneur/settings.py", line 15, in <module> 
remote:            from decouple import Csv, config 
remote:        ImportError: No module named 'decouple' 
remote:  
remote:  !     Error while running '$ python manage.py collectstatic --noinput'. 
remote:        See traceback above for details. 
remote:  
remote:        You may need to update application code to resolve this error. 
remote:        Or, you can disable collectstatic for this application: remote:  
remote:           $ heroku config:set DISABLE_COLLECTSTATIC=1 
remote:  
remote:        https://devcenter.heroku.com/articles/django-assets 
remote:  !     Push rejected, failed to compile Python app. 
remote:  
remote:  !     Push failed

Итак, как уже упоминалось, я запустил heroku config:set DISABLE_COLLECTSTATIC=1. Затем коды были помещены в репозиторий. Затем я побежал heroku run python3 manage.py migrate. Но все же я получил ту же ошибку, говорящую:

Файл /app/funderpreneur/settings.py, строка 15, в

from decouple import Csv, config ImportError: Нет модуля с именем «decouple»

Но у меня локально установлено python-decouple как для python 2, так и для 3. Кроме того, весь проект работает на django версии 2 и python версии 3.5.2. Но в runtime.txt я поставил python-3.6.4. У меня есть requirements.txt, где уже есть decouple.

В моем settings.py у меня было

import django_heroku
django_heroku.settings(locals())

Но у меня были ошибки, поэтому я прокомментировал их. Все еще получаю ошибку.

Что не так или что я делаю не так?

Изменить

My requirements.txt:

dj-database-url
django
gunicorn
psycopg2
whitenoise
dj-static
Unipath
python-decouple
Pillow
Markdown
bleach
python-decouple
django-material
raven
django-debug-toolbar
django-tables2
django-phonenumber-field
django-guardian
django-notifications-hq
djangorestframework
matplotlib
numpy
seaborn
pandas
django-heroku

И структура:

.
├── core
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   ├── __init__.py
│   │   └── __pycache__
│   │       └── __init__.cpython-35.pyc
│   ├── models.py
│   ├── __pycache__
│   │   ├── admin.cpython-35.pyc
│   │   ├── __init__.cpython-35.pyc
│   │   ├── models.cpython-35.pyc
│   │   └── views.cpython-35.pyc
│   ├── templates
│   │   └── core
│   │       ├── base.html
│   │       ├── footer.html
│   │       ├── index.html
│   │       ├── login.html
│   │       ├── navbar.html
│   │       ├── nav.html
│   │       ├── partial_settings_menu.html
│   │       ├── password.html
│   │       ├── picture.html
│   │       ├── profile.html
│   │       └── registration.html
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── db.sqlite3
├── funderpreneur
│   ├── fonts
│   │   ├── material-design-icons
│   │   │   ├── Material-Design-Iconsd41d.eot
│   │   │   ├── Material-Design-Icons.svg
│   │   │   ├── Material-Design-Icons.ttf
│   │   │   └── Material-Design-Icons.woff
│   │   └── roboto
│   │       ├── Roboto-Bold.ttf
│   │       ├── Roboto-Bold.woff
│   │       ├── Roboto-Light.ttf
│   │       ├── Roboto-Light.woff
│   │       ├── Roboto-Medium.ttf
│   │       ├── Roboto-Medium.woff
│   │       ├── Roboto-Regular.ttf
│   │       ├── Roboto-Regular.woff
│   │       ├── Roboto-Thin.ttf
│   │       └── Roboto-Thin.woff
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-35.pyc
│   │   ├── settings.cpython-35.pyc
│   │   ├── urls.cpython-35.pyc
│   │   └── wsgi.cpython-35.pyc
│   ├── settings.py
│   ├── static
│   │   ├── css
│   │   │   ├── account-settings.css
│   │   │   ├── bootstrap.min.css
│   │   │   ├── custom-materialize.css
│   │   │   ├── footer.css
│   │   │   ├── high-rise-building.jpg
│   │   │   ├── materialize.css
│   │   │   ├── navbar.css
│   │   │   ├── navbar-top-fixed.css
│   │   │   ├── style2.css
│   │   │   └── style.css
│   │   ├── humans.txt
│   │   ├── img
│   │   │   └── buet_logo.png
│   │   └── js
│   │       ├── bootstrap.min.js
│   │       ├── circular-progress-jquery.js
│   │       ├── jquery-1.11.2.min.js
│   │       ├── jquery-slim.min.js
│   │       ├── jquery.waypoints.min.js
│   │       ├── materialize.js
│   │       ├── popper.min.js
│   │       ├── profile-validation.js
│   │       └── registration-validation.js
│   ├── urls.py
│   └── wsgi.py
├── manage.py
├── media
├── Pipfile
├── Procfile
├── README.md
├── requirements.txt
├── runtime.txt
└── staticfiles

person sphoenix    schedule 28.03.2018    source источник
comment
Пожалуйста, покажите фактические требования.txt и макет вашего проекта.   -  person Daniel Roseman    schedule 28.03.2018
comment
Я отредактировал свой вопрос.   -  person sphoenix    schedule 28.03.2018


Ответы (6)


Я думаю, вы не написали имя пакета от requirements.txt до Pipfile ниже [packages] раздела. Вы должны добавить пакеты в этом формате-

package_name = "version"
person Ajoy D    schedule 31.03.2018
comment
У меня та же проблема, что и у OP, не могли бы вы расширить этот ответ? Должен ли раздел [packages] содержать все пакеты из requirements.txt? Я пытался включить python-decouple = "==3.1" в [packages] безрезультатно. В настоящее время мой [packages] содержит только django = "==2.1.2". - person Darcy; 20.10.2018

У меня также была эта проблема, но, добавив

python-decouple==3.1

в файл requirements.txt, я смог его пройти!

person Alex    schedule 18.12.2018

У меня была похожая ошибка, оказывается нужно установить модуль в виртуальную среду. Сначала запустите виртуальную среду, затем установите модуль (внутри виртуальной среды). Теперь попробуйте запустить сервер, проблема должна быть решена. В некоторых случаях может быть установлен модуль decouple, удалите этот модуль перед запуском сервера, так как это вызовет ошибку python python-decouple джанго

person Emprince    schedule 27.04.2021

У меня также была эта проблема, и я решил ее, удалив весь пакет (удалил 2x python-decouple из локально и decouple) из моей среды и локально. Затем я снова установил python-decouple (3.3).

person Lucas Waiteman Bastos Tracun    schedule 19.06.2020

У меня была такая же проблема, я новичок в джанго. Приведенные выше шаги не работали после обновления requirements.txt, пока я не переключил env.

source env/Scripts/activate
pip install -r requirements.txt
py manage.py runserver
person piouson    schedule 31.07.2020

Вам необходимо установить модуль развязки на ваше устройство. Событие, не зависящее от смены версии

пытаться:

pip install python-decouple

файл без требований.txt

person Ali ÜSTÜNEL    schedule 07.05.2021