关于django:ImportError:在Heroku上部署时,没有名为“ decouple”的模块

ImportError: No module named 'decouple' while deploying on Heroku

我试图在heroku CLI的heroku上部署django项目。 因此,我创建了一个应用程序,然后从项目目录中运行了git push heroku master。 然后我得到了错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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。 但是我仍然遇到同样的错误:

File"/app/funderpreneur/settings.py", line 15, in

from decouple import Csv, config ImportError: No module named 'decouple'

但是我在本地为python 2和python 3安装了python-decouple,而且整个项目都在Django版本2和python版本3.5.2上运行。 但是在runtime.txt中,我设置了python-3.6.4。 我有requirements.txt,其中decouple已经存在。

在我的settings.py中,

1
2
import django_heroku
django_heroku.settings(locals())

但是我遇到了错误,因此我对它们进行了评论。 仍然出现错误。

错在哪里或我在做什么错?

编辑

我的requirements.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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

strucutre是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
.
├── 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


我认为您尚未从requirements.txtPipfile波纹管[packages]部分编写软件包名称。 您应该以这种格式添加软件包-

1
package_name ="version"


我也有这个问题,但是通过添加

python-decouple==3.1

进入requirements.txt文件,我就可以克服它!