假设文件层次结构如下:
|--WORKSPACE
|--main.py
|--subdir
| --__init__.py
| --sub1.py
| --sub2.py
在python2中,我想在子模块脚本文件中的所有模块代码下面放置一些测试代码,我可以运行并检查结果。让运行的根路径为WORKSPACE。例如 在 main.py 中,我会写
from subdir import sub1
在 sub1.py 中:
from sub2 import something
if __name__ == '__main__':
do some tests
在python3中,我必须这样写:
from subdir.sub2 import something
当运行目录是subdir时,它肯定会因导入错误而停止...所以我必须将pwd更改为WORKSPACE。我认为这不是一种优雅的方式,还有其他方法可以在子目录中运行作为替代吗?
最佳答案
它不需要目录名称。例如,假设
├── main.py
└── subdir
├── __init__.py
├── sub1.py
└── sub2.py
在main.py中
from subdir import sub2
sub2.foo()
在/subdir/sub1.py
from sub2 import foo
if __name__ == '__main__':
foo()
在/subdir/sub2.py
def foo():
print("foo!")
无论工作空间如何,无论我在哪里运行 sub1 都可以工作
关于python - 在python3中,如何测试工作空间根目录下的.py文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54970913/