我正在将Eclipse / PyDev与Python2.7一起用于Django中的项目。在我的一个应用程序(比如app1)中,我在models.py中定义了一个变量,这些变量分配了列表。我没有将这些导入到另一个应用程序(比如app2)的models.py中。假设该项目名为projectName。
PROJECTNAME / APP1 / models.py
VARIABLE_NAME = (
('a', 'choice1'),
('b', 'choice2'),
)
PROJECTNAME / APP2 / models.py
from projectName.app1.models import VARIABLE_NAME
我收到了Eclipse未解决的导入错误:VARIABLE_NAME
有什么想法吗?
答案 0 :(得分:1)
PyDev的Eclipse API也为我做了这个。检查来自...... import ...样式导入是否实际解析为真正的导入是很麻烦的。这看起来很正常。当您运行该程序时,它可能会工作。如果没有,那很可能是你的错误。
答案 1 :(得分:1)
我认为以下是正在发生的事情:
1)Eclipse看到你试图导入,但是projectName不是一个包(除非你在sys.path中明确地添加它),所以它很好并且抱怨你。
2)问题是projectName不应该是一个包;至少还没有。根据{{3}},它说“另外,manage.py ...将你的项目包放在sys.path上。”
因此我会忽略“错误”,即使Eclipse在技术上是正确的,你也无法进行导入。 Django设置的重点是当你执行“python manage.py runserver”时,projectName实际上是可用的,所以一切都很好。 =)
答案 2 :(得分:1)
找到解决方案。这是一个PYTHONPATH问题,正如yanxhang指出的那样。在Eclipse的首选项中,在PyDev>下解释器,在系统PYTHONPATH的底部窗口中,确保添加作为projectName父项的文件夹,然后单击“应用”。这允许projectName自行解析它及其所有子节点。