我正在构建一个我希望能够用pip安装的软件包。软件包名称是'pololu-motors',现在是PyPi版本0.1.2,但它似乎无法正确导入。
更新: 问题已解决,问题是我而非代码,但我已将package更新为0.2版。 1并且更难以破坏名称空间,所以希望没有其他人会遇到我的问题。
如果我进入我的虚拟环境到motors
模块的基础并使用ipython导入包它可以正常工作,但如果我尝试从测试项目导入包,我已经设置了,它说它不能提交motors
上的任何类。
这是我的motors/__init__.py
from .qik2s9v1 import Qik2s9v1
就在站点包中的电机模块之外:
In [1]: from motors import Qik2s9v1
In [2]:
没有错误,并且找到了Qik2s9v1类,但是,在测试项目中,我得到了这个:
In [1]: from motors import Qik2s9v1
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-79017388c348> in <module>()
----> 1 from motors import Qik2s9v1
ImportError: cannot import name Qik2s9v1
我可以import motors
没有错误,但是Qik2s9v1
课程无处可寻。
In [2]: import motors
In [3]: motors.Qik2s9v1
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-3-fee4c340a836> in <module>()
----> 1 motors.Qik2s9v1
AttributeError: 'module' object has no attribute 'Qik2s9v1'
有什么想法在这里发生了什么?
答案 0 :(得分:0)
@Evert对此问题有正确的答案。事实证明我在同一位置有一个名为motors
的目录,我试图用ipython导入我的包名motors
。如果我将目录更改为我的测试包中的任何其他位置,它就可以正常工作。
这是一个我不应该犯的愚蠢的错误,但这是一个很好的教训。