猿问

Python/Django - 生产中没有模块错误

我是 Django 的新手,所以这可能是一个简单的错误。我创建了一个项目并添加了一些单独的应用程序。一切似乎都在本地运行,但是一旦我将其部署到 Heroku,就会出现以下错误:No module named 'myapp.api.urls'


项目结构:


website

|____myapp

|    |_____api

|    |     |_____urls.py

|    |     |_____views.py

|    |

|    |_____homepage

|    |     |_____urls.py

|    |     |_____views.py

|    |

|    |_____mailing

|    |     |_____urls.py

|    |     |_____views.py

|    |

|    |_____settings.py

|    |_____urls.py

|    |_____wsgi.py

|

|_____manage.py

|_____Procfile

|_____requirements.txt

|_____runtime.txt

简介:


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

settings.py(不是整个文件内容):


import os


BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


ALLOWED_HOSTS = ['127.0.0.1', 'myapp.herokuapp.com']


INSTALLED_APPS = [

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    'myapp.api',

    'myapp.homepage',

    'myapp.mailing',

]


ROOT_URLCONF = 'myapp.urls'


WSGI_APPLICATION = 'myapp.wsgi.application'

API 网址模式:


urlpatterns = [

    path('account/register/', ApiAccountRegisterView.as_view()),

    path('account/login/', ApiAccountLoginView.as_view()),

]

MyApp 网址模式:


from django.contrib import admin

from django.urls import path, include


urlpatterns = [

    path('admin/', admin.site.urls),

    path('api/', include('myapp.api.urls')),

    path('', include('myapp.homepage.urls'))

]

知道我做错了什么吗?我在网上搜索过,但找不到任何东西可以帮助我解决这个问题。任何帮助,将不胜感激!


眼眸繁星
浏览 114回答 2
2回答

四季花海

设法找出导致问题的原因。我不知道 Heroku 不处理 git 子模块(尤其是私有子模块)。我从 repo 中删除了子模块并将文件添加到主 repo。再次部署它,现在一切正常。感谢您的建议。感谢帮助!

慕娘9325324

Python buildpack 的更新意味着在应用程序上设置的 PYTHONPATH 和 PYTHONHOME 配置变量可能会引入此问题。首先,检查这些是否存在Heroku 配置要解决此问题,您可以像这样取消设置:heroku config:unset PYTHONHOME -a 网站heroku 配置:未设置 PYTHONPATH -a 网站
随时随地看视频慕课网APP

相关分类

Python
我要回答