Установка пакета пространства имен 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, но ни один из ожидаемых каталогов пакетов пространства имен.

0 ответов

Другие вопросы по тегам