pdoc3 ValueError: Файл или модуль 'xxx' не найден, если импортирован из другого пакета - PullRequest
0 голосов
/ 28 апреля 2019

pdoc3 - хороший инструмент для генерации документации из кода.В одном из моих проектов я получил исключение.Интересно, вызвано ли это структурой проекта?Это структура папок моих двух проектов.

proj_A
  -src
    -automation
      -hl7ctl
        (has a definition of HL7CtlClient)

proj_B
  -src
    -automation
      -connctl
        -core.py
        -utility.py (uses HL7CtlClient)

В utility.py файла proj_B я должен импортировать класс из project_A

from automation.hl7ctl import HL7CtlClient

Это вызывает следующую ошибкузапустив pdoc3 в папке src в proj_B.Proj_A был установлен с помощью 'sudo pip3 install proje_A.gz'

automa.connctl.core В коде pdoc3 нет модуля с именем 'automa.hl7ctl':

(см. https://github.com/pdoc3/pdoc/blob/master/pdoc/init.py#L519)

Traceback (most recent call last):
  File "/usr/local/bin/pdoc3", line 11, in <module>
    load_entry_point('pdoc3==0.5.5.dev13+g43f28dd.d20190427', 'console_scripts', 'pdoc3')()
  File "/usr/local/lib/python3.6/dist-packages/pdoc3-0.5.5.dev13+g43f28dd.d20190427-py3.6.egg/pdoc/cli.py", line 419, in main
    for module in args.modules]
  File "/usr/local/lib/python3.6/dist-packages/pdoc3-0.5.5.dev13+g43f28dd.d20190427-py3.6.egg/pdoc/cli.py", line 419, in <listcomp>
    for module in args.modules]
  File "/usr/local/lib/python3.6/dist-packages/pdoc3-0.5.5.dev13+g43f28dd.d20190427-py3.6.egg/pdoc/__init__.py", line 943, in __init__
    m, docfilter=docfilter, supermodule=self, context=self._context)
  File "/usr/local/lib/python3.6/dist-packages/pdoc3-0.5.5.dev13+g43f28dd.d20190427-py3.6.egg/pdoc/__init__.py", line 943, in __init__
    m, docfilter=docfilter, supermodule=self, context=self._context)
  File "/usr/local/lib/python3.6/dist-packages/pdoc3-0.5.5.dev13+g43f28dd.d20190427-py3.6.egg/pdoc/__init__.py", line 940, in __init__
    m = import_module(fullname)
  File "/usr/local/lib/python3.6/dist-packages/pdoc3-0.5.5.dev13+g43f28dd.d20190427-py3.6.egg/pdoc/__init__.py", line 520, in import_module
    raise ValueError('File or module {!r} not found'.format(module))
ValueError: File or module 'automation.connctl.core' not found

Вот как я запускаю pdoc3:

cd src
pdoc3 --overwrite --html --html-dir ../docs/APIs --template-dir ../docs/templates automation

В автоматизации и ее подпапках есть __init__.py, но нет 'src'.

Автоматизация / __init__.py имеет следующее содержание:

__import__("pkg_resources").declare_namespace(__name__)
...