项目中,同事提交的代码,在我本地确不能正常跑起来,报的如下错误:1
2
3
4Traceback (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
3from 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文件,并将自己的工作目录,列入其中即可。