在python中处理util函数

在python中处理util函数,python,directory-structure,Python,Directory Structure,在我们当前的c项目中,我们使用python脚本进行支持和测试,例如单元测试、集成测试、基准测试和通信 当前文件夹结构(大多数文件未显示): 有些python文件打算作为脚本文件执行($python script1.py),有些则打算作为模块包含在其他python文件中 我们希望实现的是一种结构,使我们能够拥有参数和实用功能,这些功能可由以下人员使用: 测试代码 其他公用事业代码 用于监控系统的较小python应用程序。即定制基准测试工具 还可以签出多个工作副本 在此日期之前,所有脚本的顶部都

在我们当前的c项目中,我们使用python脚本进行支持和测试,例如单元测试、集成测试、基准测试和通信

当前文件夹结构(大多数文件未显示):

有些python文件打算作为脚本文件执行(
$python script1.py
),有些则打算作为模块包含在其他python文件中

我们希望实现的是一种结构,使我们能够拥有参数和实用功能,这些功能可由以下人员使用:

  • 测试代码
  • 其他公用事业代码
  • 用于监控系统的较小python应用程序。即定制基准测试工具
还可以签出多个工作副本

在此日期之前,所有脚本的顶部都有以下行:

import os, sys
current_path = os.path.abspath(os.path.dirname(__file__))
sys.path.append(os.path.join(current_path, '..', 'utils')) # Variates depending on script location in file tree
sys.path.append(os.path.join(current_path, '..', 'config')) # Variates depending on script location in file tree
import python_utils.constants as constants
import config.parameters_one as parameters

大约有20多个脚本文件,很难维护。有没有更好的方法来实现这一点?

您应该通过向文件夹中添加一个空的
\uuu init\uuuuuuuuupy
文件,将文件夹转换为Python模块

此外,还可以添加pythonshebang,这样它们就可以执行,而无需从shell()显式调用Python命令

一旦您的文件夹是模块,您只需添加主源路径,就可以更轻松地导入子模块。 此外,您应该使用一个虚拟环境(VirtualEnvironment,VirtualEnvironment),它可以为您()处理路径(可能还有允许您使用额外功能的VirtualEnvironment)

我想在这里添加一些您可以使用的其他策略: python最酷的一点是,一切都是一个对象,因此您可以将脚本模块作为变量导入并传递给运行它们的函数,初始化适当的路径。此外,该函数还可以通过查看文件夹并通过它来“发现”脚本

同样,所有这些都可以通过激活前-后VirtualNVRapper轻松处理

import os, sys
current_path = os.path.abspath(os.path.dirname(__file__))
sys.path.append(os.path.join(current_path, '..', 'utils')) # Variates depending on script location in file tree
sys.path.append(os.path.join(current_path, '..', 'config')) # Variates depending on script location in file tree
import python_utils.constants as constants
import config.parameters_one as parameters