首页 > 解决方案 > 找不到模块(__init__.py 存在),我正在完全复制教程

问题描述

我看到与此相关的其他问题,但从我所看到的情况来看,没有一个答案适用于此。

我有一个看起来像这样的应用程序:

.
├── 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,这似乎避免了错误,但是当我只是在做这样的随机小事情时,我不想这样做......并且根据教程和与我商量的人,我不应该这样做。

想法?

标签: pythonpython-3.xpython-module

解决方案


尝试这个:

  • 在您的测试目录中添加 _ init _.py 文件

  • 使(ds 和测试的)父目录成为当前工作目录并运行python -m tests.test_stack

现在,正如@Klaus D. 所建议的那样,要正确运行您的测试,您需要安装 pytest 之类的东西,然后运行pytest ./tests


推荐阅读