在python项目中引用正确的python模块

问题描述

我正在尝试创建一个CLI。我的项目结构如下:

project
|--invoices
  |--abc_company
  |--xyc_company
|--scripts
 |-- __init__.py
 |-- extract_xyz_data.py
 |-- extract_abc_data.py
 |-- extract_data.py
 |-- utilities.py
 |-- abc_validation.py
 |-- xyz_validation.py
|--main.py 

主目录有一个名为“发票”的子目录,其中有两个带有pdf文件的子文件夹。

它还有一个脚本目录,其中包含一堆python脚本/模块。

我想在终端中运行main.py并传递一堆参数。 main.py具有argparser来捕获名为main的主函数中的那些

def main()

我需要从这个main.py脚本中调用extract_data.py脚本,并且在该脚本中需要调用函数extract_data并将某些参数传递给它以使其运行。

这是正确的方法吗?

from scripts.extract_data import extract_data 

在main.py脚本顶部吗?我在scripts文件夹中添加 init .py以使其作为模块工作。

此外,稍后在相同的main.py脚本中,我需要从脚本目录访问abc_validation.py。该脚本的顶部有一些常量变量,并且类AbcValidation。常量变量可以通过脚本中此类的方法之一进行访问。

我需要访问该类并在main.py脚本中从该类中调用一个方法

如果我愿意

from scripts.abc_validation.py import AbcValidation 
abc_obj = AbcValidation(args)
abc_obj.abc_main()

问题是,如果像上面那样从main.py中进行访问,那么abc_main函数内部的那些方法是否能够访问在abc_validation.py顶部定义的常量?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)