2017-10-16 139 views
0

我很努力地将我的项目成功导入到项目中的测试套件,并且能够从命令行运行程序。我已经能够运行我的测试套件一段时间了,如果测试工作,命令行的东西也一样 - 显然情况并非如此。我不想打算使用我的程序作为库。 api.py行为是该程序的入口点。用于分割测试和应用程序目录的Python导入系统机制

我有以下结构的项目(在同一目录层次结构requests):

myapp/ 
    myapp/ 
     __init__.py 
     api.py # depends on commands.py 
     commands.py # depends on utils.py 
     utils.py 
    tests/ 
     context.py 
     test_api.py # depends on api.py 
     test_commands.py # depends on commands.py, utils.py 

在文件context.py我有一个路径修改添加myappPYTHONPATH,这样我就可以成功运行测试在我的代码上。这里是该文件的内容

import os 
import sys 

sys.path.insert(0, os.path.abspath('..')) 
import myapp 

我试过可以想象的导入组合我能想到的。列表太多了!我也阅读了Python参考文献import system pagetutorial

我该如何导入我的依赖关系?

回答

0

原来这是正确的布局,我错误的错误别的东西。虽然以供将来参考,在Python 3相对进口必须明确的:当myapp包目录,你不能说import commands,而是必须导入为from . import commands。这在PEP 328中定义,也见this关于该主题的SO帖子。运行你的软件包python -m mutil.api而不是python ./mutil/api.py,因为后者不会给出当前路径的解释器上下文。

相关问题