打包库的正确方法,以便在没有前导包名

时间:2016-02-24 19:36:13

标签: python pypi

我正在尝试向PyPI发布一个包,但遇到了导入问题。

我的包装设置如下:

mypackage/
    setup.py
    mypackage/
        __init__.py
        mypackage.py

mypackage.py,我有一个班级:MyPackageWrapper__init__.py为空。

在开发过程中,我这样做:

from mypackage import MyPackageWrapper

这很有用。但是,我将我的初始版本发布到PyPI,上面的内容不再适用。它出错ImportError: cannot import name MyPackageWrapper

我必须有这样的导入:

from mypackage.mypackage import MyPackageWrapper

import mypackage
mypackage.mypackage.MyPackageWrapper()

如何摆脱上述两个中的前导mypackage,以便我可以使用:

from mypackage import MyPackageWrapper    # As done in development, or

import mypackage
mypackage.MyPackageWrapper()

1 个答案:

答案 0 :(得分:2)

您的__init__.py文件应包含:

from mypackage.mypackage import MyPackageWrapper