为什么无法从子文件夹找到该包。
为什么无法从子文件夹找到该包。
这个问题已经在这里有了答案:
我在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日
你正在尝试从父目录导入,这是行不通的。因为它在内部,tests.py
无法从translator
导入。
相反,参见此SO答案,了解该如何做:https://stackoverflow.com/a/24266885/30581