Пакет Python с модулем setuptools не имеет атрибута - PullRequest
0 голосов
/ 05 июля 2019

Я следую вместе с этим видео по упаковке Python.

У меня есть каталог:

  • 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'

Почему это не работает в соответствии с уроком парня?

1 Ответ

0 голосов
/ 05 июля 2019

Когда вы делаете import mypackage, вы импортируете только mypackage/__init__.py. Чтобы добраться до MyPackage, вам нужно mypackage/mypackage.py:

from mypackage import mypackage
...