2017-04-17 284 views
2

我創建了一個簡單的燒瓶應用和我的目錄結構是這樣的:Python3錯誤「導入錯誤:沒有名爲模塊」有__init__.py

myproject 
- src 
-- models 
--- __init__.py 
-- views 
--- errors.py 
--- default.py 
-- application.py 
-- config.py 
-- __init__.py 
- test 
-- test_myproject.py 
Readme.md 
setup.py 
.. 

application.py從SRC這個樣子的:

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' 

Runnint的與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

在兩種情況下檢查PYTHONPATH環境變量的值 –

+0

in'__init__'嘗試添加'from .models import *' – Busturdust

回答

0

你說,你正在運行python application.py,這表明你的工作目錄是src。爲了能夠在src.*下導入模塊(不使用PYTHONPATH),應該從myproject目錄運行Python。

考慮將application.py移動到myproject或運行python src/application.py

+0

謝謝!這是很好的知道,最後,我選擇了PYTHON PATH – Metonymy

相關問題