我已经阅读了很多关于绝对和相对进口的先前提出的问题,但我仍然无法弄清楚如何解决我的问题。
我的所有代码都在与之前回复的questions相同的目录中。我添加了一个空的__init__.py
作为suggested in some answers,但它也没有改变我的问题。
我的应用结构:
cli/
tests/
__init__.py (empty)
base.py
util.py
main.py
在base.py
中,from util import magical_function
正在运行(我可以运行我的测试)但是Pylint抱怨:
************* Module tests.base
W: 33, 0: Relative import 'util', should be 'tests.util' (relative-import)
我正在使用此脚本运行我的测试:
#!/usr/bin/env bash
CURRDIR="$(cd "$(dirname "$0")" && pwd)"
export PYTHONPATH=${CURRDIR}/../
source ${CURRDIR}/../activate
python ${CURRDIR}/../tests/main.py "$@"
activate
启动虚拟环境:
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source ${DIR}/.virtualenv/bin/activate
source ${DIR}/.virtualenv/bin/postactivate
按照说明运行测试时from tests.util import magical_function
导致错误:ImportError: No module named util
。
如何更改导入以获得有效的Python代码并且Pylint找不到任何错误(不禁用其中一项检查)?