Python ModuleNotFoundError

项目中,同事提交的代码,在我本地确不能正常跑起来,报的如下错误:

1
2
3
4
Traceback (most recent call last):
File "app/__init__.py", line 5, in <module>
from app.config.config import Configration
ModuleNotFoundError: No module named 'app'

错误原因很明显,没有找到名为app的模块,项目工程目录结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
.
├── flask_order
│   ├── app
│   │   ├── config
│   │   ├── config.conf
│   │   ├── __init__.py
│   │   ├── logs
│   │   ├── model
│   │   ├── requirements.txt
│   │   ├── static
│   │   ├── v1_order
│   │   ├── v1_shop_configure
│   │   ├── v1_swaggerui_json
│   │   └── v1_trade_analysis
│   ├── README.md
│   └── requirements.txt
├── order.yml
├── shop_configure.yml
└── trade_analysis.yml

部分代码:

1
2
3
from app.config.config import Configration
from werkzeug.contrib.fixers import ProxyFix
from app.config.create_app import create_app

同事在他们的IDE中运行 是可以的,但到我这里,却报了上面的错误,原因应该是IDE中自动建工作目录添加到了Python的Path路径中,虽然写的不够严谨,但IDE的智能却规避了这个问题。然而对于我这种非IDE党来说,这就是一个坑了。

为了兼容他们的代码,就要将自己的工作目录添加到环境中,这里使用的virtualenv 在Python的dist-packages中建议一个pth文件,并将自己的工作目录,列入其中即可。