我对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
:
从应用程序文件夹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
如果您与要导入的项位于同一父文件夹中,则不会将根路径放入正在调用的项。你从哪里得到的应用程序.pycup从导入视图“只需要”。导入视图”。您的代码实际处理的是试图访问应用程序.py“文件位于父pycup文件夹下,它在该文件夹中找不到名为pycup的函数
相关问题 更多 >
编程相关推荐