Python包导入问题

时间:2015-02-22 06:18:13

标签: python-2.7

我正在构建一个我希望能够用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'

有什么想法在这里发生了什么?

1 个答案:

答案 0 :(得分:0)

@Evert对此问题有正确的答案。事实证明我在同一位置有一个名为motors的目录,我试图用ipython导入我的包名motors。如果我将目录更改为我的测试包中的任何其他位置,它就可以正常工作。

这是一个我不应该犯的愚蠢的错误,但这是一个很好的教训。