Pos*_*osa 5 version-control project-structure pythonpath
网上有很多建议 Python 项目的结构可以/应该是什么,例如Python 应用程序的最佳项目结构是什么?.
"proj-dir"
+- doc
+- apidoc
+- scripts
+- "src-dir"
+- tests
Run Code Online (Sandbox Code Playgroud)
似乎 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
Run Code Online (Sandbox Code Playgroud)
如果 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
Run Code Online (Sandbox Code Playgroud)