python - 在python3中,如何测试工作空间根目录下的.py文件?

标签 python python-3.x

假设文件层次结构如下:

|--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/

相关文章:

python - matplotlib 中的堆栈条形图并为每个部分添加标签

python - 从命令行运行 Jupyter Notebook (.ipynb),就好像它是一个 .py 文件一样

python - 不能 Pickle memoize 类实例

python - 如果有2个错误处理如何调用属性?

python - 如何在不同目录中从站点包导入模块?

python - 有没有办法使用 CustomJS 回调更新图例补丁标签?

Apache 错误日志中的 Python 错误

python - NSEvent 后台全局事件监控

python - 使用索引访问实例变量

python - 如何使用 Pandas 类似于 GIS 溶解操作来汇总 Python 中的分段道路数据?