Python3 error “ImportError: No module named” have __init__.py
Python3 error “ImportError: No module named” have __init__.py
我创建了一个简单的 flask 应用程序,我的目录结构如下所示:
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'
我做错了什么?
您说您运行正在python application.py
,这表明您的工作目录是src
。为了能够在 src.*
下导入模块(不使用 PYTHONPATH),您应该从 myproject
目录中 运行 Python。
考虑将 application.py
移动到 myproject
或 运行 将其与 python src/application.py
合并。
我创建了一个简单的 flask 应用程序,我的目录结构如下所示:
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'
我做错了什么?
您说您运行正在python application.py
,这表明您的工作目录是src
。为了能够在 src.*
下导入模块(不使用 PYTHONPATH),您应该从 myproject
目录中 运行 Python。
考虑将 application.py
移动到 myproject
或 运行 将其与 python src/application.py
合并。