VCS和Python项目结构:如何自动设置PythonPath



网络上有很多建议,例如Python项目的结构可以/应该是什么,例如Python应用程序的最佳项目结构是什么?

"proj-dir"
+- doc
+- apidoc
+- scripts
+- "src-dir"
+- tests

看来,Python世界中的许多人更喜欢" SRC-DIR"one_answers" Proj-Dir"是平等的(或非常相似的)。但是,脚本和测试肯定必须从SRC-DIR导入一些模块,因此我必须

  • 当proj-dir作为我当前的工作dir或
  • 时,运行所有脚本和测试
  • pythonpath必须包含proj-dir,对吗?

或,我现在忽略了其他可能性吗?

假设我有这样的结构,并且已经正确设置了PythonPath。现在,我将项目投入VC,另一个开发人员检查了该项目。在他的机器上,pythonpath将无法正确设置,并且在脚本和测试中的导入将不起作用。

  1. 是否有可能使PythonPath定义部分成为项目的一部分,以便它可以成为版本控制的一部分?
  2. 是否有不同的项目结构,可以让我进行结帐并开始使用该项目而不修改PythonPath?
  3. 是在这里建议的解决方案:python-如何使用复杂的目录结构进行pythonpath?(即,在每个脚本中包括一个简短的sys.path修改摘要并测试)?
  4. 网站模块http://docs.python.org/2/library/site.html有任何帮助吗?
  5. 开发具有类似结构的项目时您的工作流程是什么?

即使通过项目结构很复杂,并且Testcases在不同的软件包中使用SRC,您可以在Windows中的环境变量中添加PythonPath

我的计算机 ->属性 ->系统属性 ->高级选项卡 ->环境变量。添加新系统变量PythonPath,并使用定界符';'

将您的项目dir附加到该变量

我建议您将readme.txt保留到您的项目中,这清楚地说明了如何添加PythonPath以运行脚本。它与添加Android-SDK的路径一样相似,以使ADB shell工作,添加Java路径以使Java在命令提示中工作

因此,readme.txt在仅使用一个更改的不同机器下载时有助于运行脚本(添加pythonpath变量with value = projectpath)

无需添加SRC的所有模块以使使用SRC

的测试柜起作用

这是一个示例proj结构:

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 

最新更新