python导入相关模块

hoj*_*oju 0 python python-module relative-path python-import

我在同一目录中有Python模块a.py和b.py. 如果a.py可能已从其他目录导入或直接执行,我如何可靠地从a.py导入b.py?此模块将分发,因此我无法对单个路径进行硬编码.

我一直在玩__file__,sys.path和os.chdir,但感觉很乱.而且__file__并不总是可用的.

谢谢

Ned*_*der 6

实际上,__file__可用于导入的模块,但仅限于从.py/.pyc文件导入的模块.如果内置模块,它将不可用.例如:

>>> import sys, os
>>> hasattr(os, '__file__')
True
>>> hasattr(sys, '__file__')
False
Run Code Online (Sandbox Code Playgroud)