我创建了一个简单的烧瓶应用程序,我的目录结构如下所示:
myproject
- src
-- models
--- __init__.py
-- views
--- errors.py
--- default.py
-- application.py
-- config.py
-- __init__.py
- test
-- test_myproject.py
Readme.md
setup.py
..
src中的 application.py 如下所示:
from src.models import db
from src.views.errors import error_pages
from src.views.scoreboard import scoreboard
from src.config import config
test_myproject 如下所示:
from src.models import db, Result
from src.application import create_app
我使用Pycharm来开发它,当我点击运行它有效但当我尝试通过命令行python application.py
运行它时,我收到以下错误:
Traceback (most recent call last):
File "src/application.py", line 18, in <module>
from src.models import db
ImportError: No module named 'src'
使用python -m unittest
运行单元测试。
如果我将导入从 application.py 更改为:
from models import db
from views.errors import error_pages
from views.scoreboard import scoreboard
from config import config
当我通过命令行运行它时它会起作用,但测试不再适用。
File ".../src/application.py", line 18, in <module>
from models import db
ImportError: No module named 'models'
我做错了什么?
答案 0 :(得分:0)
您说您正在运行python application.py
,这表明您的工作目录为src
。为了能够在src.*
下导入模块(不使用PYTHONPATH),您应该从myproject
目录运行Python。
考虑将application.py
移至myproject
或使用python src/application.py
运行。