为Python包添加虚拟命名空间
我有一个具有以下目录结构的python包:为Python包添加虚拟命名空间,python,python-3.x,setuptools,python-wheel,Python,Python 3.x,Setuptools,Python Wheel,我有一个具有以下目录结构的python包: my_package/ my_subpackage/ __init__.py my_module.py __init__.py setup.py 当我生成PythonWheel并安装它时,我不会使用my_包名称空间,因此my_子包将成为myvirtualenv或任何东西的全局名称空间的一部分 我知道这里的解决方案是创建另一个名为my_package的目录,并将所有内容放入其中: my_packa
my_package/
my_subpackage/
__init__.py
my_module.py
__init__.py
setup.py
当我生成PythonWheel并安装它时,我不会使用my_包
名称空间,因此my_子包
将成为myvirtualenv
或任何东西的全局名称空间的一部分
我知道这里的解决方案是创建另一个名为my_package
的目录,并将所有内容放入其中:
my_package/
my_package/
my_subpackage/
__init__.py
my_module.py
__init__.py
setup.py
但是假设由于某种原因,我无法更改目录结构。有没有办法在第一个布局中在setup.py
中添加虚拟my_包
命名空间?您可以在setup.py
中指定该选项
像这样的方法应该会奏效:
setup(
...
package_dir={'': '..'},
packages=['my_package']
...
)
不过,我从未将相对路径用于
package\u dir
,因此请您确认。您能在我的包下添加文件吗?除了我的_子包之外,我的_包还应该包含其他内容吗?可以在中找到setup.py
接受的元数据的完整列表。看起来没有任何东西可以指定“虚拟”包名。