【发布时间】:2025-12-03 08:55:02
【问题描述】:
我看到了与此相关的其他问题,但根据我所看到的,这里没有一个适用的答案。
我有一个看起来像这样的小应用:
.
├── ds
│ ├── __init__.py
│ └── stack.py
└── tests
└── test_stack.py
test_stack.py 有一个导入行:from ds.stack import Stack 和 stack.py 只是创建并传递了一个名为 Stack 的类。
当在*目录(运行tree)中时,我运行python3 tests/test_stack.py,得到错误:ModuleNotFoundError: No module named 'ds'
我已经与 Discord 中的某个人进行了检查,它在他们的机器上运行......显然是运行教程的人。
我确实有一次将这个目录放在我的PYTHONPATH 中,这似乎避免了错误,但当我只是在做这样的随机小事情时,我不想这样做......根据教程和与我交谈的人,我不应该这样做。
想法?
【问题讨论】:
-
它
test_stack.py上升了一级,它会工作。因为它是,它不会被发现。你可以做import os, sys/sys.path.append(os.path.realpath(os.path.dirname(__file__)+'/..')) -
@TimRoberts 不幸的是,这正是教程中的内容。我已经确定了大约 3 个小时了。
-
通常您从项目根目录使用测试运行器应用程序(如
pytest或python -m unittest)来防止此类问题。
标签: python python-3.x python-module