为了账号安全,请及时绑定邮箱和手机立即绑定

Python 包作为应用程序和库

Python 包作为应用程序和库

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

1 回答

  • 1 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号