Python模块名称与上游模块冲突问题解决咨询
解决Python自定义gitlab模块与python-gitlab库的命名冲突问题
方法1:启用绝对导入
在文件最顶部添加绝对导入声明,让Python优先从系统路径导入第三方库,而非当前项目的同名模块:
from __future__ import absolute_import import gitlab _gl = gitlab.Gitlab(url=gitlab_url, private_token=os.getenv('GIT_PASSWORD'))
方法2:通过importlib显式导入第三方库
利用importlib直接指定导入系统中的gitlab库:
import importlib gitlab = importlib.import_module('gitlab') _gl = gitlab.Gitlab(url=gitlab_url, private_token=os.getenv('GIT_PASSWORD'))
方法3:临时调整sys.path导入优先级
在导入gitlab前,临时移除当前项目路径的优先搜索权,导入后再恢复:
import sys # 移除当前脚本所在目录的优先搜索位置 current_path = sys.path.pop(0) import gitlab # 恢复原路径顺序 sys.path.insert(0, current_path) _gl = gitlab.Gitlab(url=gitlab_url, private_token=os.getenv('GIT_PASSWORD'))
方法4:用别名区分两者
给第三方库或自定义模块设置别名,明确区分使用对象:
# 导入第三方库并设置别名 import gitlab as python_gitlab _gl = python_gitlab.Gitlab(url=gitlab_url, private_token=os.getenv('GIT_PASSWORD')) # 若需导入自定义gitlab模块内容,用相对导入 from . import some_custom_module
内容的提问来源于stack exchange,提问作者Dakkar
相关产品推荐
相关产品推荐

