2016-04-05 86 views
3

现状:
鉴于这种项目结构:的Python 3 - 导入错误:没有模块名为

project/ 
    app/ 
    __init__.py (empty) 
    stamp.py 
    tests/ 
    test.py 
    main.py 

main.pytest.py我试图通过导入的stamp.py功能:

from app.stamp import Timestamp 

Timestamp获取导入main.py但不是test.py我得到■错误:

ImportError: No module named 'app' 

问题
哪有我的test.pystamp.py蟒蛇3.5导入功能?

+0

你怎么调用test.py? –

+0

通过终端:python tests/test.py 它不是什么花哨的test.py只是想弄清楚如何做导入 – DavidR

+0

你怎么在test.py中调用stamp.py? – idjaw

回答

2

确保您的文件夹中包含的测试__init__.py

下面的代码追加项目projectsys.pathtest.py

蟒蛇的路径将通过搜索模块和文件在您的project

import sys 
sys.path.append("/path/to/project") 
from app.stamp import Timestamp 
+0

Thx全部。建议我导入'sys'以及'os',并将以下代码添加到test.py'sys.path.append(os.path.abspath('。'))''。它的工作原理也没有'__init __。py'文件 – DavidR

+0

@DavidR很高兴知道它有帮助:) \ __ init__.py将常规目录视为一个包 – haifzhan

+0

'__init __。py'文件在python 3中提供任何好处不需要更多 – DavidR

0

确保project/在你PYTHONPATH,把和__init__.py文件中的project/目录中,然后你就可以调用from project.app.stamp import Timestamp

相关问题