打包库的正确方法,以便它在没有前导包名称的情况下正确导入
Proper way to package a library so that it imports correctly without leading package name
我正在尝试将包发布到 PyPI,但遇到了导入问题。
我的包是这样设置的:
mypackage/
setup.py
mypackage/
__init__.py
mypackage.py
在 mypackage.py
中,我有一个 class: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()
您的 __init__.py
文件应包含:
from mypackage.mypackage import MyPackageWrapper
我正在尝试将包发布到 PyPI,但遇到了导入问题。
我的包是这样设置的:
mypackage/
setup.py
mypackage/
__init__.py
mypackage.py
在 mypackage.py
中,我有一个 class: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()
您的 __init__.py
文件应包含:
from mypackage.mypackage import MyPackageWrapper