网上有很多关于 Python 项目的结构可以/应该是什么的建议,例如What is the best project structure for a Python application? .
"proj-dir"
+- doc
+- apidoc
+- scripts
+- "src-dir"
+- tests
似乎 Python 世界中的许多人更喜欢“src-dir”和“proj-dir”相等(或非常相似)。但是,脚本和测试肯定需要从 src-dir 导入一些模块,所以要么我必须
或者,还有其他我现在忽略的可能性吗?
假设我有这样的结构并且正确设置了 PYTHONPATH。现在我将项目提交到 VCS,另一个开发人员检查项目。在他的机器上,PYTHONPATH 将无法正确设置,并且脚本和测试中的导入将不起作用。
最佳答案
即使项目结构复杂且测试用例在不同的包中使用 src,您也可以在 Windows 的环境变量中添加 PYTHONPATH
我的电脑 --> 属性 --> 系统属性 --> 高级选项卡 --> 环境变量。添加新的系统变量 PYTHONPATH 并将您的项目目录附加到带有分隔符“;”的该变量
我建议您将 readme.txt 保留到您的项目中,其中清楚地说明了如何添加 PYTHONPATH 以运行脚本。类似于添加android-sdk的PATH使adb shell工作,添加Java路径使Java在命令提示符下工作
因此,readme.txt 有助于在不同的机器上下载时运行脚本,只需进行一次更改(添加 PYTHONPATH 变量,值 = 项目路径)
无需添加 src 的所有模块即可使使用 src 的测试用例正常工作
这是一个示例项目结构:
SAMPLEPROJECT
src
com
sample
example
utils
a.py
b.py
testcases
test1.py
test2.py
res
docs
如果 test1.py 测试用例使用 a.py 和 b.py:
不要将 utils 模块添加到 PYTHONPATH,因为您已经将项目路径添加到 python 路径您的导入语句在 test1.py 中看起来像这样
from src.com.sample.example.utils import a.py
from src.com.sample.example.utils import b.py
关于version-control - VCS 和 Python 项目结构 : How to setup the PYTHONPATH automatically?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13130523/