Pylint抱怨相对导入,但Python不接受绝对导入

Pylint抱怨相对导入,但Python不接受绝对导入,python,python-2.7,virtualenv,python-import,Python,Python 2.7,Virtualenv,Python Import,我读过很多关于绝对进口和相对进口的问题,但我仍然不知道如何解决这个问题 我所有的代码都在同一个目录中,与前面回答的部分相反。我添加了一个空的\uuuuu init\uuuuu.py,但它也不会改变我的问题 我的应用程序结构: cli/ tests/ __init__.py (empty) base.py util.py main.py 在base.py中,从util import magical_函数执行是可行的(我可以运

我读过很多关于绝对进口和相对进口的问题,但我仍然不知道如何解决这个问题

我所有的代码都在同一个目录中,与前面回答的部分相反。我添加了一个空的
\uuuuu init\uuuuu.py
,但它也不会改变我的问题

我的应用程序结构:

cli/
    tests/
        __init__.py (empty)
        base.py
        util.py
        main.py
base.py
中,从util import magical_函数执行
是可行的(我可以运行测试),但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 "$@"
激活
启动虚拟环境:

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

source ${DIR}/.virtualenv/bin/activate
source ${DIR}/.virtualenv/bin/postactivate
按照说明操作并使用tests.util import magical_函数
会在运行测试时导致错误:
ImportError:没有名为util的模块


如何更改我的导入,使Pylint能够运行Python代码并且没有发现错误(而不禁用其中一项检查)?

@wim似乎OP已经明确表示,他的问题与您确定为被复制者的问题略有不同。想解释一下他为什么错了吗?我已经重新打开了。问题的原因相同,但这里的最佳实践可能是在执行测试套件之前添加
setup.py
,并在开发模式下安装包。关于这一点,我找不到一个好的副本,这个主题上有很多问题,但大部分都是垃圾答案和不好的建议:-\Armand应该添加关于如何调用测试运行程序以及库代码所在位置的详细信息。@wim进一步测试后,问题是由于虚拟环境引起的(很抱歉,我在最初的问题中没有提到这一点)。我添加了运行测试时使用的两个脚本。运行测试的方式有些混乱。脚本所在的目录以及执行脚本的目录也与此相关。
tests/main.py
?为什么不使用合适的测试运行程序,如nose或pytest?