码迷,mamicode.com
首页 > 编程语言 > 详细

记一次Python导包经历

时间:2019-08-31 15:28:28      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:import   提示   类方法   pytho   背景   from   完美   开始   src   

最近由于需要写一个脚本调用另一个文件里面的一个方法,试了很久都导包失败,特此记录一下

问题背景

1)脚本文件为send_reward.py,要调用public_model_func.py里面的一个类方法

2)public_model_func.py里面导入了项目的其他包,其导包方式为from src.xxx.xxx import xxx,其中src为项目代码的根目录

3)项目处于运行状态,脚本是后续自己写的


解决过程

1)尝试在send_reward.py里面使用from src.xxx.xxx import xxx导包,结果提示找不到包

2)将send_reward.py放入与public_model_func.py同级目录下,使用from . import public_model_func,结果还是提示找不到包



3)想到可能是没有把路径加到sys.path里面,因此在send_reward.py的前面加上以下几行代码

import sys
sys.path.append("/xxx/xxx/src/xxx/xxx")  # public_model_func.py的上一级目录,从根目录开始

但是这样可以导入public_model_func.py,但是加载public_model_func.py时会导入其他的包,这时又会报错



4)考虑到public_model_func.py里面都是from src.xxx.xxx import xxx,因此考虑将src的上级目录放入sys.path,即

import sys
sys.path.append("/xxx/xxx")  # src的上级目录,注意最后面没有/

问题完美解决


小结

1)导包时要将导包路径加到sys.path里面
2)如果导的包里还导入了其他的包,那么需要特别注意是否所有包都能找到路径

记一次Python导包经历

标签:import   提示   类方法   pytho   背景   from   完美   开始   src   

原文地址:https://www.cnblogs.com/zzliu/p/11438914.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!