【发布时间】:2016-02-03 19:53:40
【问题描述】:
好吧,正如标题所说,我在尝试从另一个应用程序导入类时经常遇到上述错误。
我的文件结构是这样的(顺便说一句,我在 openshift 上):
- openshiftappname
- .openshift
- data
- libs
- wsgi
- myproject
- myproject
- app1
models.py (file with class to import)
- app2
forms.py (file with import)
manage.py
- static
__init__.py
application
setup.py
我的导入如下所示:
from wsgi.myproject.app1.models import PrivateClient
我也试过了:
from ..app1.models import PrivateClient
from ..app1 import PrivateClient
但是这两个语句都给了我错误: “值错误在 / 尝试相对导入超出顶级包”
wsgi/myproject/myproject/wsgi.py 的内容:
import os
from django.core.wsgi import get_wsgi_application
# GETTING-STARTED: change 'myproject' to your project name:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
application = get_wsgi_application()
请注意,这两个应用都添加到设置文件中的 installed_apps 中
我该怎么办?我不知道为什么会收到此错误,并且经过大量搜索后无法在网络上找到解决方案。提前致谢!
【问题讨论】:
-
我不确定
wsgi文件夹的用途。为什么不直接从myproject.app1...导入?无论如何,假设这是在生产中,您可以发布您的 wsgi.py 文件吗? -
确保你知道 python 认为你当前的工作目录是什么,然后从那里创建你的导入路径。
-
假设您的意思是 myproject 文件夹中 wsgi.py 的内容,我将发布它的内容 :) 当我尝试从 myproject 导入时......我只是得到一个未解决的参考错误.. .
-
我认为@DanielRoseman 的意思是导入为
from app1.models import PrivateClient