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恢复成原来的样子

原理

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏BeJavaGod

RabbitMQ 一二事(2) - 工作队列使用

上篇文章讲了简单队列的使用,这其实就是RMQ给的demo,实际并没有什么用 本篇讲讲工作模式队列,也称之为任务队列 一个生产者发布了多条消息,消费者A可以接受消...

36560
来自专栏FreeBuf

漏洞预警 | Windows修复两个严重远程代码执行漏洞(CVE-2017-8543/8464)

6月13日,微软发布补丁修复两个严重远程代码执行漏洞,分别存在于LNK文件和Windows Search功能中。 概述 微软的Patch Tuesday更新发布...

34660
来自专栏芋道源码1024

关于如何实现一个TCC分布式事务框架的一点思考

一个TCC事务框架需要解决的当然是分布式事务的管理。关于TCC事务机制的介绍,可以参考TCC事务机制简介。

21610
来自专栏黑白安全

PHPWindv7.5-v8.0最新漏洞利用

前几天在危险漫步的博客看到一篇关于PHPWind v7.5/v8.0漏洞的文章,考虑到PHPWind是国内著名的论坛程序,利用它建站的网站非常多,我顿时来了兴趣...

17420
来自专栏编程之旅

使用Vagrant来搭建开发环境

在大半年前刚刚接触PHP的时候,因为那时候只想先熟悉PHP的语法,并且对配置服务器、Mysql等一干事情不想花费太多时间,于是在网上找到了XAMPP这个解决方案...

38130

使用dotCloud在云端部署Django应用程序

dotCloud的目标是提供一系列不同的独立服务,作为构建模块,来构建应用程序。如果你需要一个数据库,可以直接从他们所支持的许多数据库中挑选一个。如果应用程序前...

225110
来自专栏编程坑太多

『中级篇』如何在mac上通过vagrant安装虚拟机(七)

PS:虽然可以在window和mac下直接安装docker来进行学习,但是对于实际的环境来说虚拟机的方式可以减轻电脑的硬盘负担,也更容易来删除方便控制。

25930
来自专栏Jerry的SAP技术分享

VirtualBox Network设置的NAT和Bridged Adapter模式区别

NAT模式下,虚拟机仍然可以访问网络,但是从网络接收者的眼中看来,这些网络请求都来自宿主机,而感知不到虚拟机。外网也无法访问虚拟机网络。虚拟机和宿主机器的IP地...

41210
来自专栏惨绿少年

企业架构规划及服务器优化参数

第1章 企业架构规划 1.1 架构图 ? 1.1.1 用户访问网站组成 类型 作用 实现方式 顾客-用户 访问网站的人员 ...

34000
来自专栏Crossin的编程教室

python模块的常用安装方式

之前我们讲过一些python的模块,如chardet、pygame,这些模块不包含在python的默认代码中,需要从外部下载并安装。有些模块提供了自动安装的文件...

34070

扫码关注云+社区

领取腾讯云代金券