簡體   English   中英

ModuleNotFoundError:“沒有命名的模塊<mymodule> ",從 Django 部署到 Heroku 時</mymodule>

[英]ModuleNotFoundError: "No module named <mymodule>", when deploying to Heroku from Django

將我的 Django 應用程序部署到 Heroku 時,我收到一個 ModuleNotFoundError ,指出“沒有名為 'RealisticEstate' 的模塊”。 RealisticEstate 是我的 Django 項目的名稱。 該程序構建沒有問題,但是當我嘗試部署時,出現以下錯誤:

[2021-05-13 21:35:45 -0400] [15610] [INFO] Starting gunicorn 20.1.0
9:35:45 PM web.1 |  [2021-05-13 21:35:45 -0400] [15610] [INFO] Listening at: 
http://0.0.0.0:5000 (15610) 9:35:45 PM web.1 |  [2021-05-13 21:35:45 -0400] [15610] [INFO] Using worker: sync
9:35:45 PM web.1 |  [2021-05-13 21:35:45 -0400] [15613] [INFO] Booting worker with pid: 15613
9:35:45 PM web.1 |  [2021-05-13 21:35:45 -0400] [15613] [ERROR] Exception in worker process
9:35:45 PM web.1 |  Traceback (most recent call last):
9:35:45 PM web.1 |    File "/Users/<user>/RealisticEstate/venv/lib/python3.9/site- packages/gunicorn/arbiter.py", line 589, in spawn_worker
9:35:45 PM web.1 |      worker.init_process()
9:35:45 PM web.1 |    File "/Users/<user>/RealisticEstate/venv/lib/python3.9/site-packages/gunicorn/workers/base.py", line 134, in init_process
9:35:45 PM web.1 |      self.load_wsgi()
9:35:45 PM web.1 |    File "/Users/<user>/RealisticEstate/venv/lib/python3.9/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
9:35:45 PM web.1 |      self.wsgi = self.app.wsgi()
9:35:45 PM web.1 |    File "/Users/<user>/RealisticEstate/venv/lib/python3.9/site-packages/gunicorn/app/base.py", line 67, in wsgi
9:35:45 PM web.1 |      self.callable = self.load()
9:35:45 PM web.1 |    File "/Users/<user>/RealisticEstate/venv/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
9:35:45 PM web.1 |      return self.load_wsgiapp()
9:35:45 PM web.1 |    File "/Users/<user>/RealisticEstate/venv/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
9:35:45 PM web.1 |      return util.import_app(self.app_uri)
9:35:45 PM web.1 |    File "/Users/<user>/RealisticEstate/venv/lib/python3.9/site-packages/gunicorn/util.py", line 359, in import_app
9:35:45 PM web.1 |      mod = importlib.import_module(module)
9:35:45 PM web.1 |    File "/usr/local/Cellar/python@3.9/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/__init__.py", line 127, in import_module
9:35:45 PM web.1 |      return _bootstrap._gcd_import(name[level:], package, level)
9:35:45 PM web.1 |    File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
9:35:45 PM web.1 |    File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
9:35:45 PM web.1 |    File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
9:35:45 PM web.1 |    File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
9:35:45 PM web.1 |    File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
9:35:45 PM web.1 |    File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
9:35:45 PM web.1 |    File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
9:35:45 PM web.1 |  ModuleNotFoundError: No module named 'RealisticEstate'

我的Procfile如下:

web: gunicorn RealisticEstate.wsgi

我的 Heroku 項目被命名為“realisticestate”,但是當我嘗試將我的 Procfile 更改為:

web: gunicorn realisticestate.wsgi

它會引發相同的錯誤。

這是項目結構:

RealisticEstate
|___config
|   |___static
|   |   |___admin
|   |       |___css     
|   |       |___font
|   |       |___img
|   |       |___js
|   |___ __init__.py
|   |___ asgi.py
|   |___ settings.py
|   |___ urls.py
|   |___ wsgi.py
|
|___mapper
|   |___ migrations
|   |___ utils
|   |   |___ __init.py__
|   |   |___ update_db.py
|   |___ __init.py__
|   |___ admin.py
|   |___ apps.py
|   |___ forms.py
|   |___ models.py
|   |___ tests.py
|   |___ urls.py
|   |___ views.py
|   |___ staticfiles
|
|___ templates
|___ venv
|___ .gitignore
|___ manage.py
|___ models.py
|___ Procfile
|___ requirements.txt

任何幫助將不勝感激

只有 git 根目錄 ( RealisticEstate ) 中的內容將被推送到 Heroku,而不是目錄本身。 您的 wsgi 文件是config/wsgi.py因此您應該使用:

web: gunicorn config.wsgi

確實,您需要將 project_name 放在您的 Procfile 中,並且因為始終包含所有文件夾的文件夾與wsgi.py 存在的文件夾具有相同的名稱。您的 Procfile應該指向,但在您的情況下,您命名它配置所以它應該是:

web: gunicorn config.wsgi 

我個人是這樣添加的:

web: gunicorn config.wsgi --log-file -

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM