Понимание различий в импорте при локальном запуске и установке из PyPI - PullRequest
0 голосов
/ 11 марта 2019

Я создал пакет, который имеет следующую структуру:

/data_worker/
    .git/
    data_worker/
        wrappers/
            alpha_vantage_wrapper.py
            quandl_wrapper.py
            wrapper.py
        __init__.py
        data_worker.py
        defined_wrappers.py
        mapper.py
    tests/
        test.py
    .gitignore
    LICENSE
    README.md
    requirements.txt
    setup.py
    test.py

/data_worker/data_worker/data_worker.py начинается со следующих строк:

from defined_wrappers import wrappers
import mapper

import pandas as pd
import json
import os

DATA_WORKER_DIR = os.path.dirname(os.path.abspath(__file__)) + '/'


class DataWorker:
    ...

В /tests/test.py я тестирую запуск пакета из совершенно отдельной директории, как это будет сделано после того, как я pip install отправлю пакет. У меня есть следующее:

from data_worker.data_worker import DataWorker

dw = DataWorker()

, который работает нормально со следующей ошибкой:

Traceback (most recent call last):
  File "/home/kevin/Documents/data_worker/tests/test.py", line 1, in <module>
    from data_worker.data_worker import DataWorker
  File "/usr/local/lib/python3.6/dist-packages/data_worker/data_worker.py", line 1, in <module>
    from defined_wrappers import wrappers
ModuleNotFoundError: No module named 'defined_wrappers'

Итак, мой вопрос:

Как я могу структурировать импорт моего проекта так, чтобы он мог запускаться без ошибок после установки из PyPI (или из моего каталога tests)?

...