我有以下项目层次结构:

project_dir

lib

__init__.py

...

some_script.py

...

agent

__init__.py

...

errors.py

some_agent_script.py

...

lib / agent / erros.py中有SomeException类定义

我使用以下代码在lib / agent / some_agent_script.py中导入它们:

from errors import SomeException

我还使用以下代码在lib / some_script.py中导入

from agent.errors import SomeException

问题是当我在lib / agent / some_agent_script.py中引发SomeException时,lib / some_script.py无法在except块中捕获它:

try:

# Here comes a call to lib/agent/some_agent_script.py function

# that raises SomeException

except SomeException, exc:

# Never goes here

print(exc)

except Exception, exc:

print(exc.__class__.__name__) # prints "SomeException"

# Let's print id's

print(id(exc.__class__))

print(id(SomeException))

# They are different!

# Let's print modules list

pprint.pprint(sys.modules)

我可以在sys.modules中看到erros模块被导入了两次:第一个是’agent.errors’键,第二个是’lib.agent.errors’键

以下代码是正确的,但它不是一个漂亮的解决方案:

agent_errors = sys.modules.get('agent.errors')

from agent_errors import SomeException

try:

# Here comes a call to lib/agent/some_agent_script.py function

except SomeException:

print('OK')

我该怎么做才能让这个模块不要导入两次?

python 库 类_在Python中导入库类相关推荐

  1. python库名_在python存储库名称和包名称中使用连字符/破折号 - python

    我试图使我的git仓库pip可安装.为此,我正在重组仓库以遵循正确的约定.通过查看其他存储库,我的理解是,我应该将所有源代码放在与存储库名称相同的软件包中.例如.如果我的存储库称为myrepo,则源代 ...

  2. python库排行榜_使用python landport库快速实现排行榜

    背景介绍 排行榜业务使用的频率实在太高了,各种活动都会使用排行榜.经过多次开发后我觉得实现一个简单的排行榜库,它能够完成当前我遇到的所有业务逻辑问题,也希望能够帮助到想要快速开发排行榜业务的同行. 我 ...

  3. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  4. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  5. python网络构建_使用Python构建Hopfield网络的教程

    热的东西显然会变凉.房间会会人沮丧地变得凌乱.几乎同样,消息会失真.逆转这些情况的短期策略分别是重新加热. 做卫生和使用 Hopfield 网络.本文向您介绍了三者中的最后一个,它是一个只需要特定的参 ...

  6. 阿里云服务器搭建python web环境_《Python入门》Linux 下 Python Web开发环境搭建笔记-阿里云开发者社区...

    之前写过 Windows 7下Python Web开发环境搭建笔记,今天写一下在Linux系统下搭建Python Web的开发测试环境. 我使用的系统是:ubuntu 14.04 server,根据个 ...

  7. python社区版可以用库么_应用Python,你不但能够得到出色的小区适用和普遍的库集...

    哪样计算机语言最好是?这个问题很有可能始终不容易找答案.萝卜青菜,各有所好,AI技术工程师和生物学家能够依据新项目必须,从诸多计算机语言中挑选最合适自身的. 选Python還是选Java?2020年, ...

  8. python编辑程序模型_用Python的SimPy库简化复杂的编程模型的介绍

    在我遇到 SimPy 包的其中一位创始人 Klaus Miller 时,从他那里知道了这个包.Miller 博士阅读过几篇提出使用 Python 2.2+ 生成器实现半协同例程和"轻便&qu ...

  9. python选择题题目_《Python程序设计》题库 - 选择题

    一.基础知识 1 . Python 语言属于( ) . C A . 机器语言 B . 汇编语言 C .高级语言 D .科学计算语言 2 .下列选项中,不属于 Python 特点的是( ) . B A ...

  10. python requests 重定向_认识Python最最最常用语重要的库Requests

    Requests库是Python爬虫中最最最最最最重要与常见的库,一定要熟练掌握它.下面我们来认识这个库 Requests requests是Python最为常用的http请求库,也是极其简单的.使用 ...

最新文章

  1. STAR: ultrafast universal RNA-seq aligner STAR:超快的通用RNA-seq比对器
  2. 突破磁盘低级检测实现文件隐藏
  3. 块存储,文件存储和对象存储
  4. GitHub热门教程:100天搞定机器学习(中文版)
  5. python打包脚本_py2exe打包python脚本
  6. FreeSql与SqlSugar性能测试对比
  7. Codeforces 920E-Connected Components? (set,补图,连通块)
  8. 社保基金入市规模或达3000亿元
  9. 项目管理工具 web_14个用于改善项目的Web工具
  10. Android Studio实现音乐播放器2.0
  11. 安卓为什么卡及其解决方案
  12. Win10 Terminal 背景图片设置
  13. 目前最值得推荐的几款黑科技APP,快来收藏吧!
  14. Android之开发者模式配置全面(解决打开了开发者模式,程序还是不能烧进手机问题)
  15. 数字视频编解码基础知识大全
  16. Ubuntu1604上使用Qt远程调试arm开发板
  17. 基于HTML+CSS+JavaScript+Bootstarp响应式健身网站(web前端期末大作业)
  18. 小米计算机无法清除,小米蓝牙怎么删除不常用设备
  19. matlab自学笔记一(台大郭彦甫)
  20. 新纪元财务、进销存一体化软件 v4.0 官方

热门文章

  1. c语言程序设计单元小测,C语言程序设计单元小测2.doc
  2. Python界面程序实例:按钮漂移,用Python小套路来撩女神
  3. HRNet的学习笔记
  4. 目标检测——YOLOV3的学习笔记
  5. leetcode74:二维矩阵搜索问题
  6. ROS学习笔记四:理解ROS节点
  7. IO流 (五) ----- 对象数据的序列化与反序列化
  8. SpringBoot集成MyBatis详解
  9. asp.net MVC中怎样让LINQ Designer自动生成的类从别的类继承并调用其基类构造器?...
  10. BigDecimal 常用方法