Создал пакет PyPi, но не может импортировать модули после установки - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть проект, структурированный так:

.
├── LICENSE
├── README.md
├── setup.py
└── src
    ├── __init__.py (with name="packagename")
    ├── module1
    │   ├── __init__.py (with import for each code file)
    │   └── (several code files)
    └── module2
        ├── __init__.py
        └── (similar structure to module1, total of 4 modules like this)

Я создал файлы dist, загрузил их в TestPyPI и установил в тестовый проект. Я хочу иметь возможность импортировать такие модули, как import packagename.module1, но это дает мне No module named packagename.

Мои setuptools.setup параметры в setup.py содержат такие записи:

packages=["packagename"],
package_dir={"packagename": "src"},
py_modules=["packagename.module1", "packagename.module2" ... ]

Есть идеи, почему я не могу импортировать после установки пакета?

У меня есть различные примеры тестовых сценариев вне src в проекте, где я могу получить доступ к модулям как from src.module1 import ClassName (хотя было бы неплохо заменить src.module1 на packagename.module1 при импорте, если это возможно).

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Это была проблема с необходимостью установки с использованием команды python через виртуальную среду, которую я использовал (в отличие от той, которая была активна в терминале во время установки пакета), а не проблема с моей упаковкой!

0 голосов
/ 11 сентября 2018

py_modules предназначен для объявления однофайловых модулей, расположенных в корне вашего проекта. Подкаталоги вашего каталога пакетов, такие как module1 и module2, должны быть объявлены путем перечисления их в packages:

packages=["packagename", "packagename.module1", "packagename.module2" ...]
...