首页 文章

使用单元测试导入错误:来自本地库的“没有名为...的模块”

提问于
浏览
1

我是Python(JS开发人员)的新手,我正在尝试运行测试套件 . 我的项目文件夹结构是这样的:

project/
  __init__.py
  libs/
    __init__.py
    s3panda.py 
  tests
    __init__.py
    tests_s3panda.py

在终端,我正在运行 python tests_s3panda.py .

我不明白它是如何找不到本地模块的:

Traceback(最近一次调用最后一次):文件“tests_s3panda.py”,第7行,来自libs.s3panda导入S3Panda ImportError:没有名为libs.s3panda的模块

tests_s3panda.py snippet:

from __future__ import absolute_import

import unittest

import pandas as pd

from libs.s3panda import S3Panda


class TestS3Panda(unittest.TestCase):
    ...

为相对路径做 from ..libs.s3panda import S3Panda ,我得到:

ValueError:在非包中尝试相对导入

1 回答

  • 0

    我相信顶层文件夹中没有 init.py 的事实意味着Python不知道 libstests 都是同一模块的一部分,名为 project .

    尝试将 __init__.py 添加到 project 文件夹,然后将import语句写为 from project.libs.s3panda import S3Panda . 通常,您希望指定绝对导入而不是相对导入(When to use absolute imports) .

相关问题