Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在站点包目录结构中安装python 3.6命名空间包 问题: 我无法在3.6.4虚拟环境中以预期的目录结构(在Lib/site packages下)安装源分发命名空间包。_Python 3.x_Namespace Package - Fatal编程技术网

Python 3.x 在站点包目录结构中安装python 3.6命名空间包 问题: 我无法在3.6.4虚拟环境中以预期的目录结构(在Lib/site packages下)安装源分发命名空间包。

Python 3.x 在站点包目录结构中安装python 3.6命名空间包 问题: 我无法在3.6.4虚拟环境中以预期的目录结构(在Lib/site packages下)安装源分发命名空间包。,python-3.x,namespace-package,Python 3.x,Namespace Package,背景: 我正在使用两个不同版本的python中的名称空间包 当我在2.7.14中使用pkgutils样式的ns打包构建包时,我可以安装,并且目录结构可以按照我所希望的方式展开 当我在3.6.4中构建包时,包会安装,但目录结构没有按预期创建 设置: 我有两个虚拟环境 在工作中,我使用了2.7.14兼容的pkgutils命名空间包功能。我正在为这个虚拟环境使用VirtualEnvironment来确认安装,它会按照我的意愿安装。目录结构按预期显示在我的venv/Lib/site包中,这样venv/L

背景:

我正在使用两个不同版本的python中的名称空间包

当我在2.7.14中使用pkgutils样式的ns打包构建包时,我可以安装,并且目录结构可以按照我所希望的方式展开

当我在3.6.4中构建包时,包会安装,但目录结构没有按预期创建

设置:

我有两个虚拟环境

在工作中,我使用了2.7.14兼容的pkgutils命名空间包功能。我正在为这个虚拟环境使用VirtualEnvironment来确认安装,它会按照我的意愿安装。目录结构按预期显示在我的venv/Lib/site包中,这样venv/Lib/site包/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文件传输到虚拟环境根目录,然后运行

pip install --no-index --find-links=. tools-sub-a
这安装得很好,但是当我导航到virtualenvironment Lib/site packages目录时,tools/sub_a目录结构不在那里


我看到一个tools\u sub\u a-1.0.0.dist-info,但没有预期的名称空间包目录。

只是一个非建设性的旁注:上次我尝试将PEP-420名称空间包与setuptools结合使用时,我最终放弃了。@code\u onkel-ouch。不幸的是,这不是我的选择。如果我可以,为了建设性的考虑,如果你想看到解决的问题,考虑一下投票的可见性。我无法重现所描述的问题(Ubuntu 16.04/Python 3.64)。在构建、安装和测试软件包时,您是否验证了正确的解释器版本和虚拟环境是否有效?你使用的是Windows还是Linux?(尽管有斜杠,但site packages文件夹的路径指示windows)您是否尝试从头开始重新构建venv?我在笔记本电脑上进行了尝试,并且安装正确。非常感谢。我将尝试新安装并重新创建虚拟环境。但现在我知道它至少起作用了