python文件名与包名冲突

时间:2022-05-08
本文章向大家介绍python文件名与包名冲突,主要内容包括起因、解决方法、原理、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

起因

不久前,写脚本的时候遇到了这个问题,在编写jira相关脚本的时候,上头让脚本名称为jira.py,但是使用的包JIRA里也有叫jira的子项,导致冲突,需要调用的时候总是优先调用我的jira.py内容而不是调用JIRA包,导致程序出错

解决方法

import sys
_cpath_ = sys.path[0] #获取当前路径
sys.path.remove(_cpath_) #删除
from jira import JIRA
sys.path.insert(0, _cpath_) #恢复

sys.path.remove(_cpath_) #删除 这一条可以将path中的第一条删除 sys.path.insert(0, _cpath_) #恢复这一条可以将path恢复成原来的样子

原理

程序总是将上级目录内容定位最高优先级,只要将它暂时屏蔽掉就可以了