首先关闭所有:我很抱歉,我知道有很多关于相对进口的问题,但我没有找到解决方案。如果可能的话,我想用下面的目录布局:蟒蛇包装相对进口
myClass/
__init__.py
test/
demo.py
benchmark.py
specs.py
src/
__init__.py
myClass.py
现在我的问题是:
如何从包装内的测试文件正确导入myClass.py?
如果您将myClass作为子模块放在libs/myClass或include/myClass中,您将如何从外部导入软件包?
到目前为止,我找不到一个优雅的解决方案。从我的理解Guido's Decision应该可以做到from ..src import myClass
但这将错误:
ValueError: Attempted relative import in non-package
它看起来,因为它没有把myClass的为包。 Reading the docs:
我似乎失去了一些东西,它指定包的脚本,我应该使用.pth?
@布伦特纽维,是的,你是对的,相对进口似乎是一个持续的话题,在阅读了不少答案之后,我仍然觉得有专门描述我的情况的冲动。在展示了这个q之后,在#python IRC频道中,不少人推荐使用平面目录结构:“许多人拒绝Python想用目录和文件获取语义名称空间信息的方式,最好只是放弃并做Python想要什么。“ http://jcalderone.livejournal.com/39794.html – eerne 2010-12-03 18:24:45
任何人都可以提供一个链接到一些真实世界的软件包,示例性的目录布局,或遵循一些约定? (理想情况下在github上) – eerne 2010-12-03 18:31:07
在`test`目录中是否有`__init __。py`? `ValueError:试图在非包中进行相对导入可能与它有关。 – jfs 2010-12-03 20:48:58