您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python导入优先级:包还是模块?

Python导入优先级:包还是模块?

TLDR;如果程序包位于同一目录中,则它们优先于相同名称的模块。

从文档:

“当spam导入一个名为的模块时,解释器会spam.py在当前目录中搜索一个文件,然后在环境变量指定的目录列表中搜索PYTHONPATH。这具有与shell变量PATH相同的语法,即目录名称。”

这有点误导,因为解释器还会寻找一个名为的包spam一个spam包含__init__.py文件的目录)。由于目录条目是在搜索之前进行排序的,因此,如果程序包位于同一目录中,则它们优先于具有相同名称的模块,因为它们位于spam之前spam.py

请注意,“当前目录”是相对于主脚本路径(where __name__ == '__main__' is True)。因此,如果您正在/home/billg通话/foo/bar.py,则“当前目录”是指/foo

python 2022/1/1 18:40:34 有278人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶