在django测试项目settings.py
中,我最近尝试将其放入:
try:
import mymodule
except:
import sys
TESTPROJ_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
PROJ_PARENT = os.path.abspath(os.path.join(TESTPROJ_ROOT, '..'))
sys.path.append(PROJ_PARENT)
目的是在环境中未安装mymodule
时添加本地项目路径。为了便于理解,目录结构如下:
base/mymodule
base/test_project/manage.py
base/test_project/test_project/settings.py
只要mymodule
不在环境中,这就有效。一旦import mymodule
被执行(settings.py
中的任何地方),我就收到了错误:
django.core.exceptions.ImproperlyConfigured: ImportError django.contrib.admin: cannot import name signals
我有两个问题......
a)有没有办法阻止这种错误发生?
b)是否有另一种“智能”方式允许settings.py
更改路径以允许模块在本地包含(如果它不在环境中)?
提前致谢。
答案 0 :(得分:0)
您可以在my-site.pth
的一部分目录中创建文件sys.path
,并在该文件中包含您要添加的目录的完整路径。
my-site.pth
base/mymodule