Установка пакета пространства имен Python 3.6 в структуре каталогов сайта-пакетов
Проблема:
Я не могу получить пакет пространства имен исходного дистрибутива для установки в виртуальной среде 3.6.4 в ожидаемой структуре каталогов (в Lib/site-packages).
Фон:
Я работаю с пакетами пространства имен в 2 разных версиях Python.
Когда я собираю пакет в 2.7.14, используя пакет ns в стиле pkgutils, я могу установить, и структура каталогов разворачивается так, как я хочу.
Когда я собираю пакет в 3.6.4, пакет устанавливается, но структура каталогов не создается должным образом.
Настроить:
У меня есть 2 виртуальных среды.
В рабочем я использую функциональность пакета пространства имен pkgutils, совместимого с 2.7.14. Я использую virtualenv для этой виртуальной среды, чтобы подтвердить установку, и она устанавливается по желанию. Структура каталогов отображается в моем venv/Lib/site-packages, как и ожидалось, так что существует venv/Lib/site-packages/tools/sub_a.
В нерабочем режиме я использую venv и неявную упаковку пространства имен для PEP420
Вот моя структура каталога пакета 3.6.4:
tools
-sub_a
-__init__.py
-module.py
setup.py
README.rst
В моем подпакете init есть только следующее:
name = 'sub_a'
Вот мой setup.py
from setuptools import setup
from codecs import open
from os import path
here = path.abspath(path.dirname(__file__))
with open(path.join(here, 'README.rst'), encoding='utf-8') as f:
long_description = f.read()
setup(
name='tools-sub-a',
version='1.0.0',
description='A sample Python project',
long_description=long_description,
url='none',
author='myuser',
author_email='myuser@host.com',
classifiers=[
'Development Status :: 3 - Alpha',
'Intended Audience :: Developers',
'Topic :: Software Development :: Build Tools',
'License :: Only For Internal Use',
'Programming Language :: Python :: 3.6.4'
],
keywords='none',
packages=['tools.sub_a'],
install_requires=[],
extras_require={},
package_data={},
data_files=[],
entry_points={},
project_urls={},
)
Пакет собирается с помощью python setup.py sdist, я передаю файл tar.gz в корневой каталог виртуальной среды и запускаю
pip install --no-index --find-links=. tools-sub-a
Это прекрасно работает, однако, когда я перехожу к виртуальной среде Lib / site-packages, структура каталогов tools / sub_a отсутствует.
Я вижу tools_sub_a-1.0.0.dist-info, но ни один из ожидаемых каталогов пакетов пространства имен.