Добавить виртуальное пространство имен для пакета Python - PullRequest
3 голосов
/ 30 апреля 2019

У меня есть пакет python со следующей структурой каталогов:

my_package/
    my_subpackage/
        __init__.py
        my_module.py
    __init__.py
    setup.py

Когда я сгенерирую колесо Python и установлю его в pip, у меня не будет пространства имен my_package, поэтому my_subpackageбудет частью глобального пространства имен моего virtualenv или чего-либо еще.

Я знаю, что решение здесь состоит в том, чтобы создать еще один каталог с именем my_package и поместить в него все:

my_package/
    my_package/
        my_subpackage/
            __init__.py
            my_module.py
        __init__.py
    setup.py

Но допустим, что по какой-то причине я не могу изменить структуру каталогов.Есть ли способ добавить виртуальное my_package пространство имен в setup.py с первым макетом?

1 Ответ

0 голосов
/ 30 апреля 2019

Вы можете указать package_dir в вашем setup.py.

Что-то вроде этого должно работать:

setup(
    ...
    package_dir={'': '..'},
    packages=['my_package']
    ...
)

Я никогда не использовал относительные пути с package_dir хотя, так что ваше подтверждение будет оценено.

...