Python跨目录导包踩坑记录

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_projectmuji-data-job-pyexecutorutil’)
加了之后依然提示找不到 util

解决

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

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

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

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

原文地址:https://www.cnblogs.com/bigtreei/p/14268865.html