【发布时间】:2012-01-09 20:57:37
【问题描述】:
在 Django 中开发一个项目,我的 IDE 设置为带有 PyDev 的 Eclipse。以下导入语句:
from polls.models import Poll, Choice
通过以下方式从命令行运行项目时有效:
python manage.py runserver
但是,Eclipse 内置的错误检查无法找到 polls.models(“未解析的导入端口”)。我可以通过在类之前添加项目名称然后运行它来解决这个问题。也就是做import语句:
from projectName.polls.models import Poll, Choice
问题是我正在与项目合作,但不能这样做。
问题是:有没有办法让 Eclipse 自动检测或假设 import 语句中的 projectName?
【问题讨论】:
-
为项目命名是正确的做法(tm)。隐式相对导入是由纯粹的邪恶构成的。
-
谢谢,团队成员同意。对 Django 来说是全新的,所以我们仍在定义约定。
-
你也可以在项目设置中戳 PYTHONPATH 来解决这个问题。
-
使用 projectName 不是一个好主意。永远不要这样做。它有时肯定会反击。这绝对不是“正确的做法”。始终创建新应用并将其放在 PYTHONPATH 上的某个位置。而不是“从 appName 导入”。但这就是你已经在做的事情。我会在下面回答。
-
我只会将项目名称放在单个文件(如 WSGI)中,即项目上方的一个目录。然后在整个项目中使用显式的相对导入 (
from __future__ import absolute_import+from .polls.models import Poll, Choice)。
标签: django eclipse import pydev