【问题标题】:Python tests can't import the module they're testing [duplicate]Python测试无法导入他们正在测试的模块[重复]
【发布时间】:2014-09-17 11:01:17
【问题描述】:

我知道 Python 导入是一个常年令人头疼的问题,但我不明白为什么要打破它:

我的文件结构如下:

webapp/
    README.md
    ...
    webapp/
        __init__.py
        ...
        tests/
            __init__.py
            test_integration.py

webapp/init.py 正在初始化一个 Flask 项目,而 webapp/tests/test_integration.py 正在尝试测试主页。

当我 cd 进入 webapp/webapp 并运行 python tests/test_integration.py(包括行 import webapp)时,我收到错误 ImportError: No module named webapp。我尝试cd 向上一个目录,进入上层webapp,以及向下进入tests,但同样的处理。我尝试将内部webapp目录的绝对路径添加到PYTHONPATH,但无济于事。

这很奇怪,因为我在另一个项目中使用了类似的结构,而且它似乎工作正常。

另外,如果我将test_integration.py 一直向上移动到外部webapp 目录中,它运行得很好。为什么测试不能从文件树内部的任何其他位置import webapp

有什么见解吗?谢谢!~

【问题讨论】:

  • 为了完全避免这个问题,我通常将库安装到虚拟环境中,这样我就可以从任何地方导入。

标签: python import


【解决方案1】:

“我尝试将内部 webapp 目录的绝对路径添加到 PYTHONPATH,但无济于事。”

您需要将您的外部 webapp 目录添加到PYTHONPATH

export PYTHONPATH=/path/to/webapp:$PYTHONPATH

然后你的内部webapp目录就会可见,你可以导入它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-16
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多