python跨包导入包_Python跨目录导包踩坑记录

在Flask+Celery+Redis项目中遇到Python跨包导入问题。在PyCharm中正常,但在终端运行时出现找不到模块的错误。尝试通过`sys.path.append()`添加模块路径,但未成功。最终解决方案是在`sys.path.append()`中添加项目的根目录,从而成功导入所需模块。
摘要由CSDN通过智能技术生成

Outline

写了个Flask+celery+Redis的项目,目录结构如下:

muji-data-job-pyexecutor

│ .gitignore

│ app.py#Flask app,如果想项目后续扩展变大,可用蓝图管理

│ README.md

│ requirements.txt

├─config

│ config.yaml

├─my_celery#Celery 任务

│ │ main.py

│ │ settings.py

│ │

│ ├─clean

│ │ tasks.py

│ │

│ ├─exchange_spider

│ │ tasks.py

│ │

│ └─fix

│ tasks.py

├─testcase

│ compare_df.py

└─util

spiderUtils.py

utils.py

准备从 clean/tasks.py 导入 util/utils.py 来使用:

from util.utils import CallBack

在pycharm下是OK的(pycharm会动态解决跨目录导包)

但在terminal下运行,就报错说找不到 util

就选择用 sys.path.append() 把所需要导入的包加入 sys环境;

但加了之后依然报错,下面是我加的方式:

sys.path.append(‘D:\git_project\muji-data-job-pyexecutor\util’)

加了之后依然提示找不到 util

解决

ef19caab2771dd8846a5a9d982aab58c.png

明明已经把util加到sys环境里了,有图有真相~~

但是还是提示没这个包,头都大了!

后来想了下,上面已经把util加到sys下了,我去找util的确找不到,如果我在muji-data-job-pyexecutor 下导入按理说是可以找到 util的;

因此直接加到muji-data-job-pyexecutor,然后导包~ 可以了~~

(下班了下班了~)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值