python-3.x - Python3测试文件夹导入问题
问题描述
尝试使用文件夹结构在 Python3 中编写测试
package/
__init.py__
Foo.py
Bar.py
test/
__init.py__
test_Foo.py
foo.py
import Bar
test_Foo.py
import Foo
运行python3 -m unittest
结果No module named Foo
如果我将其更改为
from package import Foo
它会解决,但Foo.py
会出现错误No module named 'Bar'
如果我Foo.py
改为
from package import Bar
测试将运行没有错误,但运行python3 Foo.py
将导致No module named 'package'
我已经经历过关于这类问题的各种答案,比如这个
和这个
他们都没有解决这个问题
解决方案
您的项目根目录(以及工作目录!)需要是package的父级。
然后everyimport
将是形式import package.module
or from package import module
。
如果你运行python packgae/Foo.py
或者python -m package.Foo
它应该工作。
另请查看pypa - 示例项目以查看推荐的 Python 项目结构。
推荐阅读
- c - 如何递归地使字符串中所有单词的首字母大写?
- cucumber - 如何将现有的基于 Java 的黄瓜测试框架迁移到空手道
- python - 如何在python中打印SVM集群
- react-native - 当我已经有 python、npm、nodejs 和 jdk 时,'react-native' 不被识别为内部或外部命令、可运行程序或批处理文件
- python - 如何使用销毁或撤回功能获得不是根的 tkinter 屏幕?
- javascript - 从影子 DOM 脚本访问全局文档
- html - 无法在自定义 Angular 元素上进行旋转
- javascript - InsertAfter 使用 Javascript 的长 HTML 块
- scala - Scala将元素添加到scala中的Nil列表
- sql - 当我执行更新表的过程时对象名称无效