2012-01-14 172 views
0

我在Python中使用Eclipse/PyDev作为Django中的项目。在我的其中一个应用程序(比如app1)中,我有一个在models.py中定义的变量,其中有列表分配给它们。我无法将这些导入另一个应用程序的models.py(比如app2)。假定该项目名为projectName。Python:导入变量失败

PROJECTNAME/APP1/models.py

VARIABLE_NAME = (
    ('a', 'choice1'), 
    ('b', 'choice2'), 
) 

PROJECTNAME/APP 2/models.py

from projectName.app1.models import VARIABLE_NAME 

我未解决进口Eclipse中收到一个错误:VARIABLE_NAME

任何想法?

回答

1

找到了解决方案。正如Yanxhang指出的那样,这是一个PYTHONPATH问题。在Eclipse的首选项中,在PyDev> Interpreter下,在System PYTHONPATH的底部窗口中,确保添加您的projectName的父文件夹,然后单击apply。这允许projectName自行解析其所有子项。

1

PyDev的Eclipse API对我也是这样。它有麻烦检查是否从...进口...风格进口将实际上解决到一个真正的进口。这对我来说很正常。当你运行程序时,它可能会工作。如果没有,这很可能是你的错误。

1

我认为下面是发生了什么事情:

1)Eclipse中看到你试图导入,但项目名称是不是一个包(除非你在sys.path中添加它明确),所以它正在很好的和抱怨你。

2)问题是projectName不应该是一个包;至少还没有。根据https://docs.djangoproject.com/en/dev/ref/django-admin/,它说:“另外,manage.py ...将项目的包放在sys.path中。”

因此,我会忽略“错误”,即使Eclipse在技术上是正确的,你无法进行导入。 Django设置的重点在于当您执行“python manage.py runserver”时,projectName实际上可用,所以一切都很好。 =)