Eclipse/PyDev/Django导入需要项目名称

Eclipse/PyDev/Django导入需要项目名称,django,eclipse,import,pydev,Django,Eclipse,Import,Pydev,在Django中开发一个项目,我的IDE设置为Eclipse和PyDev。以下进口声明: from polls.models import Poll, Choice from projectName.polls.models import Poll, Choice 通过以下方式从命令行运行项目时工作: python manage.py runserver 但是,Eclipse的内置错误检查无法找到polls.models(“未解析的导入端口”)。我可以通过在类之前添加项目名称,然后运行这个

在Django中开发一个项目,我的IDE设置为Eclipse和PyDev。以下进口声明:

from polls.models import Poll, Choice
from projectName.polls.models import Poll, Choice
通过以下方式从命令行运行项目时工作:

python manage.py runserver
但是,Eclipse的内置错误检查无法找到polls.models(“未解析的导入端口”)。我可以通过在类之前添加项目名称,然后运行这个来修复这个问题。也就是说,制作导入语句:

from polls.models import Poll, Choice
from projectName.polls.models import Poll, Choice
问题是我正在合作这个项目,不能这样做


问题是:有没有办法让Eclipse从导入语句中自动检测或假定projectName?

在导入语句中使用projectName不是一个好主意

使用django/python时,请开始使用virtualenv。尤其是在使用eclipse/pydev时。您可以为每个virtualenv配置一个新的解释器。只需将virtualenv添加到“Preferences>PyDev>interprefer-Python”下的解释器列表中,并确保将您的djangoproject根添加到同一首选项页面上的PYTHONPATH


这基本上就是django在从命令行运行时为您所做的事情。

命名项目是正确的做法(tm)。隐式相对导入是由纯邪恶构成的。谢谢,团队成员同意。对Django来说都是新的,所以我们仍然在定义约定。你也可以在项目设置中插入PYTHONPATH来解决这个问题。使用projectName不是一个好主意。永远不要这样做。有时它肯定会反击。这绝对不是“正确的做法”。始终创建新的应用程序并将其放置在PYTHONPATH上的某个位置。而不是“从appName导入”。但这是你已经在做的事情。我将在下面回答。我只将项目名称放在单个文件(如WSGI)中,即项目的一个目录中。然后在整个项目中使用显式相对导入(
from\uuuu future\uuuu import absolute\u import
+
from.polls.models import Poll,Choice
)。