【发布时间】:2014-01-17 22:43:01
【问题描述】:
对于像下面这样的目录结构,我无法将xy 设为可导入包。
xy
├── __init__.py
├── z
│ ├── __init__.py
│ └── stuff.py
└── setup.py
如果setup.py 是一个目录,我可以使用
from setuptools import setup
setup(name='xy',
packages=['xy'])
但除此之外,package_dir 和packages 的组合没有让我import xy,只有import z。不幸的是,moving the setup.py 目录向上并不是一个真正的选择,因为硬编码路径数量过多。
【问题讨论】:
-
我不确定我是否理解您的问题,但您是否要导入 xy 以便可以访问 xy.setup?
-
我的目标是访问
xy.z,不一定是xy.setup,但我认为xy.setup是可以访问的,除非某处明确删除。 -
如果你在 xy/__init__.py 中写上
import z,通过导入 xy,你应该可以毫不费力地访问 xy.z。 -
不幸的是,我正在尝试将 setup.py 添加到比此处列出的更大的代码库中,并且将整个代码库导入
__init__文件即使有一些 @987654336 也不会令人愉快@循环。 -
这超出了我的知识范围,但我的印象是您无法逃避这样一个事实,即最终您已经明确声明了所需的导入。
__all__会让它变得愉快吗?