Advertisement

python import 常见问题解答或 sys.path失效处理方案

阅读量:

不关心故事背景的朋友们可以直接跳到“解决方案”~

文章目录

  • 故事背景
  • 历史方案
  • 解决方案

故事背景

目前在使用thrift的过程中遇到了一个相关问题:这些生成的python文件之间采用的是基于相对路径的引用机制。

复制代码
    thrift_folder
    ├── base
    │   ├── constants.py
    │   ├── __init__.py
    │   └── ttypes.py
    ├── model
    │   ├── __init__.py
    │   ├── constants.py
    │   ├── ttypes.py
    
    # model/ttypes.py
    import base.ttypes

当Python起始运行文件路径位于thrift_folder之外时, 引用可能会出现错误

历史方案

老前辈们提供了两种解决方案

  • 修改所有的import
  • 修改os.path

问题出在即使用脚本时,在每个thrift前面必须编写from thrift_folder import base(如果不预先设置__all__ = bulabula并导入*的话),这可能会导致循环引用;然而,在thrift文件中仍然隐藏

全部评论 (0)

还没有任何评论哟~