python - mac - как обновить pip



Скрыть модули реализации и подмодули в пакете (1)

Вы можете скрыть внутренности модуля от импорта, подчеркнув имя модуля:

_yourmodulenamegoeshere.

E: Вы также можете определить __all__ в __init__ пакета - только имена модулей из __all__ будут импортированы через import *.

Я хочу, чтобы пакет моего кода отображал только основные функции. Мой каталог выглядит так:

./
  setup.py
  my_module/
    __init__.py
    public_functions.py
    internal_modules/
      __init__.py
      A.py
      B.py
      other_modules.py/
        __init__.py
        C.py

В public_functions я импортирую некоторые операции из internal_modules.A но НЕ из A.py , и оба A.py и B.py используют некоторые функции из C.py

Моя setup.py выглядит следующим образом:

from setuptools import setup

setup(name='my_module',
      version='0.1',
      description='my_awesome_module',
      author='Me',
      author_email='[email protected]',
      license='MIT',
      packages=['my_module'],
      zip_safe=False)

Я хочу установить его с помощью pip, но я хочу, чтобы ни один из моих internal_modules видимым из моего пакета после его установки.

Я мог бы установить его правильно, но когда я это сделаю

from my_module import public_module

он бросает ImportError: no module named internal_modules.A в первой строке public_module.py .

Я знаю, что могу исправить это, если я добавлю my_module.internal_modules в мое объявление setup.py как другой пакет, но это позволит моим внутренним_модулям публично видеть A.py и B.py видимые из установленного пакета.

Я нашел здесь аналогичный вопрос, но он не работает для меня





packages