python - 从子文件夹引用 Django 应用程序

标签 python django

我正在从 Python 填充脚本中引用 Django 应用。

当填充脚本与 my_project 放在同一文件夹中时,一切正常,如下所示:

if __name__ == '__main__':
    print "Starting population script..."
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my_project.settings')
    from persons.models import Person, Contact
    populate()

但现在我正在尝试将我的填充脚本(不是 Django 应用程序)移动到名为 population/ 的子文件夹中。尝试时会抛出以下错误:

ImportError: 没有名为 persons.models 的模块

所以我尝试将导入更改为绝对导入:from my_project.persons.models import Person, Contact

然而,这会产生 ImportError: No module named my_project.persons.models

我也尝试过相对导入,from .my_project.persons.models import Person, Contact,但这会产生 ValueError: Attempted relative import in non-package.

我做错了什么?

我在 Windows 下的 virtualenv 中使用 Django 1.6 和 Python 2.7。

最佳答案

用你的编辑来编辑我的答案,这里是解决方案:

 #append the app path to your PYTHONPATH before the import
 import sys
 import os

 sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))

关于python - 从子文件夹引用 Django 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22891915/

相关文章:

Python:defaultdict 在 2.6 中成为不可编码的对象?

python函数计算成绩

django - 如何在 django 模板中使用 for 循环?

django - Nginx,无法 fork : Cannot allocate memory

python - Python 中奇怪的时间问题

python - 如何从该应用程序中调用 Python Bottle API

python - pyspark 在集群上,确保所有节点都被使用

Python 导入的类作为实例化对象传递

python - 属性错误 : 'module' object has no attribute 'getmro'

python - Django Q 在标题中查找列表中的字符串返回重复项