Как настроить пакет Pypi без точечной нотации в абсолютном импорте - python3 - PullRequest
0 голосов
/ 28 января 2019

Большинство «профессиональных» модулей Python можно импортировать следующим образом:

from pythonfile import class

И именно так я обычно импортирую свои собственные классы, которые находятся в моей локальной файловой системе / текущем каталоге.

Но после просмотра нескольких записей и документов python.org я все еще не могу заставить свой модуль python (на Pypi.org) импортировать таким образом.

Единственный способ получить мой модуль для импорта -вот так:

from example.example import Example

(Пример - это класс в example.py)

Как мне заставить мой модуль импортироваться так:

from example import Example

Мой модульна Pypi имеет структуру папок, подобную этой, и отлично устанавливается через pip:

example/
|
├── example/
│   ├── example.py
│   ├── __init__.py
│   └── __pycache__
│       └── __init__.cpython-36.pyc
|
|
├── __init__.py
├── LICENSE
|
├── README.md
└── setup.py
  • Для ясности я опустил каталоги build /, dist / и egg-info.

Должен ли я добавить операторы импорта в один из __init__.py файлов?

Я хочу, чтобы разработчики могли установить пакет через pip, а затем использовать простой

from example import Example а не from example.example import Example

Спасибо.

1 Ответ

0 голосов
/ 28 января 2019

когда вы смотрите на некоторые другие большие пакеты, которые они обычно имеют в верхнем __init__.py, что-то вроде

from .modulex import *
from .moduley import *

точка означает, что python просматривает текущий пакет перед остальной частью PYTHONPATH.

...