为什么无法从子文件夹找到该包。

10 浏览
0 Comments

为什么无法从子文件夹找到该包。

这个问题已经在这里有了答案:

使用典型的测试目录结构运行单元测试

我在Python包中遇到了一个奇怪的问题。我有一个名为manchinetranslator的Python包,在其中创建了一个用于单元测试的子文件夹,如下所示。

manchinetranslator/translator.py
manchinetranslator/__init__.py
manchinetranslator/tests/tests.py

在translator.py中,定义了两个函数:

def english_to_french(text):
...
def french_to_english(text):
...

__ init__.py 如下:

from . import translator

tests.py 包含了translator.py中的两个函数的单元测试,如下:

import unittest
from translator import english_to_french, french_to_english
class Test_english_to_french(unittest.TestCase):
...   
class Test_french_to_english(unittest.TestCase):
...

但是当运行 tests.py 时,它会给出如下错误:

Traceback (most recent call last):
  File "C:\Python\manchinetranslator\tests\tests.py", line 3, in 
    from manchinetranslator.translator import english_to_french, french_to_english
ModuleNotFoundError: No module named 'manchinetranslator'

然而,当将tests.py放在与translator.py相同的文件夹中时,它可以正常工作。我猜可能需要设置$PYTHONPATH,但我不确定如何做。所以我需要帮助解决这个问题。

admin 更改状态以发布 2023年5月22日
0
0 Comments

你正在尝试从父目录导入,这是行不通的。因为它在内部,tests.py无法从translator导入。

相反,参见此SO答案,了解该如何做:https://stackoverflow.com/a/24266885/30581

0