我正在将一个非常大的多包、多应用程序的Django (1.4.5)项目从使用Django的原生测试运行器切换到py.test (2.3.5)。在创建了setup.cfg (用于管理py.test选项)和conftest.py (用于忽略setup.py)之后,发现并运行了对最底层包web-framework的测试,没有任何错误。当在任何需要web-framework的高级包上运行py.test (带有setup.cfg和conftest.py)时,我收到以下错误:
ERROR: Could not import settings 'high_level_package.test_settings' (Is it on sys.path?): No module named web_framework.settings我使用的是一个虚拟环境,web-framework位于venv中的以下位置:ENV/lib/python2.7/site-package/
我尝试了在包的根目录中构建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框架包的路径中尝试了硬编码。
两种方法都不起作用。
如果它是相关的,我的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。
发布于 2013-09-19 04:55:22
为了让它工作,你需要有一个开发-安装的工作树,或添加。到PYTHONPATH环境变量
发布于 2014-01-25 09:13:55
更改为主python网站模块所在的文件夹
django-admin runserver --settings=mysite.settings创建我的站点的位置
django-admin startproject mysitehttps://stackoverflow.com/questions/18878728
复制相似问题