在site-packages目录结构

时间:2018-03-23 16:34:01

标签: python-3.x namespace-package

问题:

我无法在预期的目录结构(在Lib / site-packages下)的3.6.4虚拟环境中安装源分发命名空间包。

背景:

我正在使用2个不同版本的python中的命名空间包。

当我使用pkgutils样式ns打包在2.7.14中构建软件包时,我可以安装并且目录结构将按照我想要的方式推出。

当我在3.6.4中构建软件包时,软件包会安装,但目录结构不会按预期创建。

设定:

我有2个虚拟环境。

在工作中,我使用2.7.14兼容的pkgutils命名空间包功能。我在这个虚拟环境中使用virtualenv来确认安装,并按我的意愿安装。目录结构按预期显示在我的venv / Lib / site-packages中,这样就存在venv / Lib / site-packages / tools / sub_a。

在非工作中,我按照PEP420使用venv和隐式命名空间打包

这是我的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文件传输到虚拟环境目录root,然后运行

pip install --no-index --find-links=. tools-sub-a

这样安装很好,但是当我导航到虚拟环境Lib / site-packages目录时,tools / sub_a目录结构不存在。

我看到了tools_sub_a-1.0.0.dist-info,但没有预期的命名空间包目录。

0 个答案:

没有答案