Python 带有 setuptools 模块的包没有属性
Python package with setuptools module has no attribute
我正在关注这个关于 python 包装的 pycon 视频。
我有一个目录:
mypackage/
__init__.py
mypackage.py
readme.md
setup.py
mypackage.py
的内容:
class MyPackage():
'''
My Damn Package
'''
def spam(self):
return "eggs"
setup.py
的内容:
import setuptools
setuptools.setup(
name='mypackage',
version='0.0.1',
description='My first package',
packages=setuptools.find_packages()
)
现在我创建一个虚拟环境并安装包:
pip install -e .
现在我这样做了:
python
>>> import mypackage
>>> mypackage.MyPackage().spam()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'mypackage' has no attribute 'MyPackage'
为什么这不能按照这个人的教程工作?
当您执行 import mypackage
时,您仅导入 mypackage/__init__.py
。要到达 MyPackage
,您需要 mypackage/mypackage.py
:
from mypackage import mypackage
您可以将 from .mypackage import *
放入 init.py
文件中。
我正在关注这个关于 python 包装的 pycon 视频。
我有一个目录:
mypackage/
__init__.py
mypackage.py
readme.md
setup.py
mypackage.py
的内容:
class MyPackage():
'''
My Damn Package
'''
def spam(self):
return "eggs"
setup.py
的内容:
import setuptools
setuptools.setup(
name='mypackage',
version='0.0.1',
description='My first package',
packages=setuptools.find_packages()
)
现在我创建一个虚拟环境并安装包:
pip install -e .
现在我这样做了:
python
>>> import mypackage
>>> mypackage.MyPackage().spam()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'mypackage' has no attribute 'MyPackage'
为什么这不能按照这个人的教程工作?
当您执行 import mypackage
时,您仅导入 mypackage/__init__.py
。要到达 MyPackage
,您需要 mypackage/mypackage.py
:
from mypackage import mypackage
您可以将 from .mypackage import *
放入 init.py
文件中。