错误:无法导入设置

时间:2013-09-18 17:35:19

标签: django python-2.7 pytest

我正在使用Django的本地测试运行器切换到一个非常大的多包,多应用程序Django(1.4.5)项目到py.test(2.3.5)。在创建setup.cfg(管理py.test选项)和conftest.py(忽略setup.py)之后,发现并运行了最低级别的包,web-framework的测试,没有错误。在任何更高级别的包上运行py.test(带有setup.cfg和conftest.py)时,都需要web-framework,我收到以下错误:

ERROR: Could not import settings 'high_level_package.test_settings' (Is it on sys.path?): No module named web_framework.settings

我正在使用虚拟环境,并且web框架位于以下位置的venv中:ENV / lib / python2.7 / site-packages /

我尝试过在程序包的根目录中构建的venv,并在项目路径之外构建它,但无济于事。另外,我可以从更高级别包的根目录中的Python交互式命令行导入web_framework.settings。

我当前的conftest.py只是以下一行:collect_ignore = [“setup.py”] 我试过在它上面添加以下几行:

import os
import sys

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

我还尝试在上面的sys.path.append中的web-framework包的路径中进行硬编码。

两者都没有。

如果相关,我的setup.cfg是:

[pytest]
python_files = *test*.py
norecursedirs = node_modules ENV
addopts = --junitxml=python_result.xml, --doctest-modules

编辑: 忘了提及追溯关系。 higher_level_package.test_settings导入higher_level_package.settings,它本身导入web_framework.settings。

2 个答案:

答案 0 :(得分:1)

为了使其工作,您需要进行工作树的开发安装或添加。到PYTHONPATH env var

答案 1 :(得分:-1)

转到主python网站模块所在的文件夹

django-admin runserver --settings=mysite.settings

创建了 mysite
django-admin startproject mysite