具有setuptools模块的Python包没有属性

时间:2019-07-05 09:02:30

标签: python pypi

我正在跟这个有关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'

为什么这家伙的教程不起作用?

2 个答案:

答案 0 :(得分:0)

执行import mypackage时,您仅导入mypackage/__init__.py。要进入MyPackage,您需要mypackage/mypackage.py

from mypackage import mypackage

答案 1 :(得分:0)

您可以将from .mypackage import *放在init.py文件中。