我正在与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()
)
现在我创建一个虚拟env,并使用:
安装软件包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
文件中。