加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

版本控制 – VCS和Python项目结构:如何自动设置PYTHONPATH?

发布时间:2020-12-20 13:30:50 所属栏目:Python 来源:网络整理
导读:网上有很多建议 Python项目的结构可以/应该是什么,例如 What is the best project structure for a Python application?. "proj-dir"+- doc+- apidoc+- scripts+- "src-dir"+- tests 似乎Python世界中的许多人更喜欢“src-dir”和“proj-dir”相等(或非常相
网上有很多建议 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导入一些模块,所以我要么必须这样做

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

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

假设我有这样的结构并正确设置了PYTHONPATH.现在我将项目提交到VCS,另一个开发人员检查项目.在他的机器上,PYTHONPATH将无法正确设置,脚本和测试中的导入将无法正常工作.

>是否有可能以某种方式使PYTHONPATH定义成为项目的一部分,以便它可以成为版本控制的一部分?
>是否有不同的项目结构可以让我在不修改PYTHONPATH的情况下进行结账并开始使用项目?
>这里建议的解决方案是:Python – How to PYTHONPATH with a complex directory structure?(即在每个脚本和测试中包含一个简短的sys.path修改片段)正确的?
>网站模块http://docs.python.org/2/library/site.html会有什么帮助吗?
>开发具有类似结构的项目时,您的工作流程是什么?

解决方法

即使项目结构复杂且测试用例在不同的包中使用src,也可以在Windows中的环境变量中添加PYTHONPATH

我的电脑 – >属性 – >系统属性 – >高级选项卡 – >环境变量.添加新的系统变量PYTHONPATH并使用分隔符’;’将项目目录附加到该变量

我建议你把readme.txt保存到你的项目中,它清楚地说明如何添加PYTHONPATH以运行脚本.它与添加android-sdk的PATH类似,使adb shell工作,添加Java路径使Java在命令提示符下工作

因此readme.txt有助于在只有一次更改的情况下在不同的机器上下载时运行脚本(添加值为= projectpath的PYTHONPATH变量)

无需添加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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读