Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在项目外部测试时,找不到包名称格式为的Django可重用应用程序_Python_Django_Testing - Fatal编程技术网

Python 在项目外部测试时,找不到包名称格式为的Django可重用应用程序

Python 在项目外部测试时,找不到包名称格式为的Django可重用应用程序,python,django,testing,Python,Django,Testing,我正在尝试测试一个Django可重用的应用程序,它被组织为Python包。以下是目录树: reusableapp ├── __init__.py └── submodule ├── __init__.py └── app ├── __init__.py ├── models.py ├── tests.py └── views.py 我的Django版本是1.5。要选择应用程序进行测试,我有以下基于公开的代码: 但是

我正在尝试测试一个Django可重用的应用程序,它被组织为Python包。以下是目录树:

reusableapp
├── __init__.py
└── submodule
    ├── __init__.py
    └── app
        ├── __init__.py
        ├── models.py
        ├── tests.py
        └── views.py
我的Django版本是1.5。要选择应用程序进行测试,我有以下基于公开的代码:

但是当我执行它时,我得到了以下错误(使用virtualenv):

(reusableapp)$python runtests.py
回溯(最近一次呼叫最后一次):
文件“runtests.py”,第48行,在
失败=测试运行程序。运行测试(已安装的应用程序)
文件“/var/lib/virtualenvs/reusableapp/local/lib/python2.7/site packages/django/test/simple.py”,第369行,运行测试中
suite=self.build\u suite(测试标签、额外测试)
文件“/var/lib/virtualenvs/reusableapp/local/lib/python2.7/site packages/django/test/simple.py”,第254行,在构建套件中
suite.addTest(构建测试(标签))
文件“/var/lib/virtualenvs/reusableapp/local/lib/python2.7/site packages/django/test/simple.py”,第102行,内部构建测试
应用程序模块=获取应用程序(部件[0])
文件“/var/lib/virtualenvs/reusableapp/local/lib/python2.7/site packages/django/db/models/loading.py”,第160行,在get_应用程序中
raise配置不正确(“找不到标签为%s的应用程序”%App\u label)
django.core.exceptions.ImpropertlyConfigured:找不到标签为reusableapp的应用程序
我在Django文档中搜索过关于可重用应用程序和格式的内容,但除此之外什么都没有

你知道一些明确的约定/要求,明确了可重用的应用程序格式吗?如果没有,您是否遇到过这种情况?有没有办法强制加载应用程序


谢谢您并向您致意。

假设您的应用程序路径为/parentdir/reusableapp/submodule/app

首先,通过在python解释器中运行以下命令,确保PYTHONPATH中有/parentdir/:-

>>> import os
>>> os.environ['PYTHONPATH'].split(os.pathsep)
您可能不会看到此路径,请在django project manage.py文件中添加以下行

sys.path.append('/parentdir/')
同时-
您是否检查了在template_loaders中设置django.template.loaders.app_directories.Loader,如果尚未设置,请尝试这样添加它-

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
)
模板子目录上的django文档-


希望能有所帮助。

如果我在Django项目中,可以使用此功能。我拥有的是一个项目外部的可重用应用程序的源代码,它使用该代码段执行测试。
sys.path.append('/parentdir/')
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
)