网址.py在赫罗库引起了强烈的恐慌,但在当地却没有

2024-05-15 21:47:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我对django和Heroku环境比较陌生,我怀疑我有以下问题是因为我在项目中忽略了一些小问题。基本上,我能够在本地manage.py runserver而没有任何问题,并且本地http视图如预期那样显示。我也能够将更改推送到Heroku而不会出错。在

但是,当我试图通过http访问我的远程Heroku项目时,我从应用程序的urls.py得到一个ImportError。我相信pycup应用程序在项目的settings.py中定义正确,因为它能够在本地运行。不过,我尝试过导入'apps.pycup'并简单地将'apps'导入到设置中,但没有成功。在

我最初的想法是Heroku没有正确地读取文件结构,或者git没有将__init__.py文件推送到Heroku,但是在快速检查了heroku run bash和{}之后,很明显情况并非如此。在

我之所以使用apps/文件夹来包含pycup应用程序,是因为它是在how-to-blog上建议的,它似乎是一个很好的建议,可以在项目中灵活地开发更多的应用程序,以实现未来的可扩展性。在

以下是我使用的基本文件结构:

manage.py
Procfile
requirements.txt
reunion
|___ static
|___ settings.py
|___ urls.py
|___ wsgi.py
|___ __init__.py
|___ __pycache__.py
apps
|___ pycup
| |___ admin.py
| |___ apps.py
| |___ migrations
| |___ models.py
| |___ static
| |___ templates
| |___ tests.py
| |___ urls.py
| |___ views.py
| |___ __init__.py
| |___ __pycache__.py
|___ __init__.py
|___ __pycache__.py

以下是来自项目中urls.py文件的代码示例:

从主项目文件夹reunion/urls.py:

^{pr2}$

从应用程序文件夹apps/pycup/urls.py:

from django.conf.urls import include, url
from django.contrib import admin

from apps.pycup import views # <- This is the line to which the error is traced in Heroku

urlpatterns = [
    # Examples:
    # url(r'^blog/', include('blog.urls')),
    # url(r'^admin/', include(admin.site.urls)),

    url(r'^$', views.index, name='index'),
]

我得到的错误是:

ImportError at /
No module named pycup
Request Method: GET
Request URL:    http://********.herokuapp.com/
Django Version: 1.9.2
Exception Type: ImportError
Exception Value: No module named pycup
Exception Location: /app/apps/pycup/urls.py in <module>, line 4
Python Executable:  /app/.heroku/python/bin/python
Python Version: 2.7.11

Tags: apps文件项目djangopy文件夹应用程序http
1条回答
网友
1楼 · 发布于 2024-05-15 21:47:46

如果您与要导入的项位于同一父文件夹中,则不会将根路径放入正在调用的项。你从哪里得到的应用程序.pycup从导入视图“只需要”。导入视图”。您的代码实际处理的是试图访问应用程序.py“文件位于父pycup文件夹下,它在该文件夹中找不到名为pycup的函数

相关问题 更多 >