我在一个目录中有几个python模块.
在同一目录中,我有一个包tests.
我非常希望将模块命名tests为与它们包含测试的模块相同的名称,尽管它当然并不重要.
所以,在tests.foo我天真地写import foo.这不是很好 - 它是进口tests.foo,而不是顶级foo.
我能做我想做的事情,还是只需要打电话给测试模块test_foo?
对不起,如果这是显而易见的或是一个骗局,我的搜索失败了.
test_foo.py 在这种情况下似乎是一个合适的解决方案
如果不重命名测试模块,则将tests目录放入Python包(添加tests/__init__.py文件)并使用绝对导入:
from __future__ import absolute_import
import foo # import global foo.py, the first foo.py in sys.path
import tests.foo as test_foo # import tests/foo.py
Run Code Online (Sandbox Code Playgroud)