python - 在测试和核心之间共享模块 - 适当的项目结构

标签 python python-3.x python-module directory-structure pep8

我正在尝试改进项目结构,同时添加到代码库。我找到了一个示例结构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.txtsetup.py 的级别高于 tests/sample/

如果我添加sample/classes.py,您只需在sample/core.py中编写from classes import MyClass即可将其导入那里。然而,它不能那么容易地导入到 tests/test_basic.py 中,导入时看起来不像 python '看起来在拐角处'那样。

就我而言,还有一个与requirements.txt处于同一级别的MANIFEST.in和一些文件,这些文件不是真正的python,而是只是为其运行的平台进行设置。

如果classes.pyrequirements.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/

相关文章:

python - 无法访问 Pycharm 中的自定义 python 模块

python - 级联detectMultiScale后,opencv2 imshow不会更新

python - 获取 Access_token 以读取 Page Insights

html - 在html表格的每一行添加点击功能

python - 大量的 Python OSC 模块——使用哪一个?

Python ConfigParser - 跨模块使用

python - 如何让Eclipse(pydev)打开文件时自动折叠所有注释?

python - 将数据转换为 Pandas 中缺失的数据

python - 在数据立方体中使用列表理解

python-3.x - 如何结合 pytube 和 tkinter 标签来显示进度?