如何在项目中正确使用辅助模块?

时间:2017-05-22 05:14:18

标签: python

我有一个很大的设置的大型C / C ++项目。为了简化不同变体和配置的构建过程,我以模块的形式编写了Python脚本。

所以在项目根目录中我有这个helpers文件夹。我需要设置我的工作环境的唯一方法是将我的PYTHONPATH变量设置为我的Git根文件夹:

export PYTHONPATH=$(git rev-parse --show-toplevel)

这让我可以访问我的帮助模块,但我怀疑这是最好的选择。

什么是它的好选择?

1 个答案:

答案 0 :(得分:1)

一种替代方法是将模块组织为命令。

你可以制作一个主脚本,比如说main.py,并在你的bin中建立一个链接:

user@host:home/user/bin$ ln ~/my_module/main.py buildhelper

然后使main.py可执行文件:更改其权限,并添加#!/usr/bin/env python作为其第一行。

user@host:~/$ chmod 755 ~/my_module/main.py

现在您可能需要您的脚本来解析控制台参数,以便调用不同的功能。您的main.py可能如下所示:

import my_module
import sys

def setup(*args):
    pass

def build(*args):
    pass

if __name__ == '__main__':
    if len(sys.argv) == 1:
        print("No function requested")

    elif sys.argv[1] == 'setup':
        setup(*argv[1:])

    elif sys.argv[1] == 'build':
        build(*argv[1:])

    else:
        print("Invalid function")

然后,您可以通过以下命令调用模块的函数:

user@host:/anywhere$ buildhelper setup
user@host:/anywhere$ buildhelper build

<强>赞成

  • 随处工作
  • 可以重复用于其他项目
  • 清洁

<强>缺点

  • 来自世界各地的工作:如果脚本过于特定于项目,则可能有点过分
  • 可能需要额外的工作来将模块组织为命令