我在Pycharm
中开发了一个python3包,但是在我的测试用例中尝试import
模块时遇到了一些令人困惑的行为。问题似乎与内部包模块的目录路径有关。解释这个问题有点困难,但这里有一个要点。
所以python包的名称是pyugend.
现在,当我尝试将一个名为Models
的模块(在包内)导入测试用例时,pycharm
迫使我引用路径为pyugend.pyugend.Models.
所以我需要两次引用pyugend
。
但是,当我构建,安装此软件包并将其导入jupyter
笔记本或某个脚本时,我会遇到有关pyugend
软件包未找到内部模块的错误。解决这些错误的唯一方法是将模块内部的路径更改为pyugend.Models
等引用。
基本上,要在pycharm
内部运行测试,我确保所有内部包导入都使用类似from pyugend.pyugend.Models import ...
的目录路径但是当我想在{{1}之外使用包时然后我实际上必须进入包,将所有pycharm
引用转换为单个import pyugend.pyugend...
引用。
答案 0 :(得分:0)
您可以在sys.path.append(os.path.dirname(os.path.abspath(__file__)))
中的导入之前添加行__init.py__
,然后将导入更改为from pyugend.Models import Base_model
,依此类推,以便在您使用该包时启用一致的行为。