python导入相关模块
我的 Python 模块 a.py 和 b.py 位于同一目录中。 考虑到 a.py 可能是从另一个目录导入或直接执行的,如何可靠地从 a.py 导入 b.py? 该模块将被分发,因此我无法对单个路径进行硬编码。
我一直在玩 __file__
、sys.path 和 os.chdir,但感觉很混乱。 并且 __file__
并不总是可用。
I have the Python modules a.py and b.py in the same directory.
How can I reliably import b.py from a.py, given that a.py may have been imported from another directory or executed directly? This module will be distributed so I can't hardcode a single path.
I've been playing around with __file__
, sys.path and os.chdir, but it feels messy. And __file__
is not always available.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
实际上,
__file__
可用于导入的模块,但前提是它是从 .py/.pyc 文件导入的。 如果模块是内置的,则不可用。例如:Actually,
__file__
is available for an imported module, but only if it was imported from a .py/.pyc file. It won't be available if the module is built in. For example:使用 inspect 模块将使内置模块更加明显:
Using the inspect module will make the builtin modules more obvious:
将包含两者的目录放入您的 python 路径中...或反之亦然。
Put the directory that contains both in your python path... or vice versa.