如果 Python 导包你还有问题,不妨看看玄学——Python 导包问题解决记录

本文讲述了作者在阅读RL代码库时遇到的一系列关于Python包导入的困难,包括缺失模块、找不到包和循环导入等问题,通过逐步解决并分享经验,强调了耐心分析和交流的重要性。
摘要由CSDN通过智能技术生成

事情起因:组会临时要抱佛脚跑通自己的代码,但是课题组都放假了办公室就自己一个人倒腾,尝试 GPT 了几个相关方案都没有解决,自己回办公室十分郁闷,和室友吐槽...

背景描述:

在 Github 上下载到的一个 RL 用于地学问题的代码库,配有 UCL 的硕士毕业论文。

主程序是:ipynb 文件,其中主程序调用了 src 文件夹下面的 envs 文件夹的控制环境和 learn 文件夹中的强化学习组件。


下面是依次出现的 bug 及解决方案

  1. bug 起因:主程序中调用作者写的第三方包出现导入的相关错误,报错为缺少模块

添加图片注释,不超过 140 字(可选)

解决方案,找到其中调用的 envs ,重新更改调用的文件夹对象

添加图片注释,不超过 140 字(可选)

2. bug 起因:找不到包

吐槽:写在包中的文件明明在单独程序可以访问,为什么导出时候出现问题

添加图片注释,不超过 140 字(可选)

解决:通过加入玄学的 . 使得 from learn_class import Learn 变成 from .learn_class import Learn

3. bug 起因:同上,找不到模块,明明已经识别

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

解决:通过加入玄学的 . 使得 from envs.AYS.AYS_Environment import * 变成 from .envs.AYS.AYS_Environment import *

4. bug 起因:同上,找不到模块,明明已经识别

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

解决:通过加入玄学的 .

5. bug 起因:找不到模块

添加图片注释,不超过 140 字(可选)

解决:通过加入玄学大法2的,将 import ays_model as ays 之前加上 from .

添加图片注释,不超过 140 字(可选)

6. bug 起因:同上问题,同样解决

7. bug 起因:循环导入

ImportError: cannot import name 'Learn' from partially initialized module 'src.learn_class' (most likely due to a circular import) (D:\zhihu\climate_policy_rl-main\src\learn_class.py)

添加图片注释,不超过 140 字(可选)

解决方案:通过 GPT 建议可能是重复导入,因此删除该语句(笨蛋了,里面多的和本身的程序重复)

添加图片注释,不超过 140 字(可选)

终于解决了

添加图片注释,不超过 140 字(可选)

复盘反思:

  1. 耐心分解,遇到问题解决,不要想着完全弄懂,完美主义

2. 和有经验的人耐心交流,这次很感谢室友帮助,一起 debug 帮助很大,卡主时候不妨多散散步相信自己

3. 遇到具体的问题先弄懂定义再解决它,比如查询一下导包的几个方案,熟悉套路,也许偶然替换有帮助

参考文章:

提供了导包套路的操作方案

Python中库导入from . import 和from .. import 的使用方法

总结:

如果你也出现了包和模块的导入问题出现,不妨将 import 前面加上 from . 或者将 import xx 改成 import .xx

  • 16
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值