我正在尝试改进项目结构,同时添加到代码库。我找到了一个示例结构here看起来像这样:
README.rst
LICENSE
setup.py
requirements.txt
sample/__init__.py
sample/core.py
sample/helpers.py
docs/conf.py
docs/index.rst
tests/test_basic.py
tests/test_advanced.py
我特别注意到 requirements.txt
和 setup.py
的级别高于 tests/
和 sample/
如果我添加sample/classes.py
,您只需在sample/core.py
中编写from classes import MyClass
即可将其导入那里。然而,它不能那么容易地导入到 tests/test_basic.py
中,导入时看起来不像 python '看起来在拐角处'那样。
就我而言,还有一个与requirements.txt处于同一级别的MANIFEST.in
和一些文件,这些文件不是真正的python,而是只是为其运行的平台进行设置。
如果classes.py
与requirements.txt
处于同一级别,我认为tests/
中的所有内容都可以轻松导入它,并且在 sample/
及其子目录中,但它可能需要一个 __init__.py
这感觉不太对劲。
那么,如果 tests/
和 sample/
都需要能够使用它,那么它应该放在哪里?
最佳答案
让我们变得简单。
如果我理解正确,问题是如何在测试中导入简单模块
。这意味着您想要使用类似 from simple.classes import MyClass
.
这很简单,只需在执行 python test/test_basic.py
之前将根路径添加到 PYTHONPATH
即可。
当您通过 IDE 执行测试时,这也是 IDE 为您所做的事情。
关于python - 在测试和核心之间共享模块 - 适当的项目结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52724222/