我知道已经有这样的问题了,但是我现在已经研究了一个多小时,我根本无法让它工作。
我有一个使用鼻子测试进行单元测试的包,并且某些类是可导入的。我有以下结构:
setup.py
/RecurrenceRelationSolver
-- __init__.py
-- RecurrenceRelation.py
-- RecurrenceRelationParser.py
-- RecurrenceRelationSolver.py
/tests
-- __init__.py
-- context.py
-- test_homogenous.py
github 在这里:https : //github.com/rowanG077/RecurrenceRelationSolver
我__init__.py看起来像这样,因为我想允许其他人导入这些类:
from .RecurrenceRelation import RecurrenceRelation
from .RecurrenceRelationParser import RecurrenceRelationParser
在我的情况下,RecurrenceRelationSolver.py不包含任何类,而是这样的:
from . import RecurrenceRelationParser
from . import RecurrenceRelation
def main():
...
if __name__ == '__main__':
main()
然后在我的单元测试中__init__.py是空的,context.py我有:
# -*- coding: utf-8 -*-
import sys
import os
sys.path.insert(0, os.path.abspath(
os.path.join(os.path.dirname(__file__), '..')))
from RecurrenceRelationSolver import RecurrenceRelation, RecurrenceRelationParser
它现在的结构方式我可以成功运行单元测试,但是当我在RecurrenceRelationSolver目录中并运行python RecurrenceRelationSolver.py它时,它不适用于以下消息:
from . import RecurrenceRelationParser
ImportError: cannot import name 'RecurrenceRelationParser'
我不知道该怎么做,因为我从来没有做过这样的模块。无论如何我可以构建我的导入,我可以继续将包用作库并直接运行?
任何帮助表示赞赏!
我正在使用 python 3.6。
相关分类