将Python模块从我的项目文件夹导入tests文件夹时遇到问题。当然我漏掉了一些东西,但是读了很多其他的答案,我还是不能让它发挥作用。在
文件夹结构如下:
/CorpusBuilder
/corpusBuilder
__init__.py
corpus.py # contains Corpus class
/tests
__init__.py
test_corpus.py # trying to import Corpus class — but fails
每个__init__.py
文件的具体内容是什么?[顶层文件夹(CorpusBuilder
)是否也需要__init__.py
文件?]^{import
语句应该说什么?在
抱歉有这么多问题:我想我只需要一个明确的例子来工作。在
根本不需要将任何内容放入
__init__.py
文件中。假设您从基本的“CorpusBuilder”目录运行测试,或者将该目录放到PYTHONPATH上,那么您的测试语料库文件可以简单地说from corpusBuilder.corpus import Corpus
。在在我的方法中(根据http://www.scotttorborg.com/python-packaging/index.html),测试不是在顶层的。不需要初始化文件。(假设你的模块名应该是corpusBuilder)。你需要的是设置.py(同样是:http://www.scotttorborg.com/python-packaging/minimal.html和https://docs.python.org/2/distutils/setupscript.html)如果您想运行测试:
所以你的结构应该是:
^{pr2}$在corpusBuilder的init中,您可以定义子模块的导入。这对于不污染命名空间非常有用。例如:
否则,这只是一个空白文件。在
中的init文件
不需要任何东西,在你的测试语料库中,你需要导入你的模块。例如:
现在应该可以运行测试了。在
相关问题 更多 >
编程相关推荐