我一直在努力寻找如何使用各种类型的模块有效地组织代码的方法。我有一个三层文件夹系统。父目录包含main.py文件,该文件导入并运行主要代码。这些模块位于称为lib的子文件夹中,而其他模块则位于其他子文件夹中。但是,当我从子文件夹导入一个模块时,该模块本身无法在同一子目录中导入模块。抱歉,如果这是一个不好的问题,但是我无法弄清楚为什么导入语句不起作用,而且我已经查看了google和堆栈溢出,但未发现任何类似的问题。欢迎提供所有建议。
SELECT Account
,ProfitCode
,FormatCode
,Acctname
,(
SELECT sum(Debit) AS OBDebit
FROM JDT1 AS t
WHERE RefDate < {?From}
AND JDT1.Account = t.Account
AND JDT1.ProfitCode = t.ProfitCode
)
,(
SELECT sum(Credit) AS OBCredit
FROM JDT1 AS t
WHERE RefDate < {?From}
AND JDT1.Account = t.Account
AND JDT1.ProfitCode = t.ProfitCode
)
,(
SELECT sum(Debit) AS OBDebit
FROM JDT1 AS t
WHERE RefDate >= {?From}
AND Refdate <= {?To}
AND JDT1.Account = t.Account
AND JDT1.ProfitCode = t.ProfitCode
)
,(
SELECT sum(Credit) AS OBCredit
FROM JDT1 AS t
WHERE RefDate >= {?From}
AND Refdate <= {?To}
AND JDT1.Account = t.Account
AND JDT1.ProfitCode = t.ProfitCode
)
FROM JDT1
JOIN [OACT] ON [JDT1].[Account] = [OACT].[AcctCode]
JOIN [OPRC] ON [JDT1].[ProfitCode] = [OPRC].[PrcCode]
GROUP BY Account, ProfitCode, FormatCode ,Acctname
我主要跑
Parent Directory
---->lib
|--->module_group
|module_one.py(that tries but fails to import module_one)
|module_two.py
|main.py
这将一直工作到处理错误为止,即说没有像第二模块这样的模块。但是,当我自己运行module_one时,它可以与以下import语句一起正常工作。
from lib.module_group.module_one import Module_One
答案 0 :(得分:1)
将PYTHONPATH
设置为您要用作根目录的目录。例如,如果要使用以下代码:
from lib.module_group.module_one import Module_One
然后将PYTHONPATH
设置为包含lib
的目录。例如:
lib/module_group/module_one.py
:
from lib.module_group.module_two import Module_Two
lib/module_group/module_two.py
:
class Module_Two:
print('Loaded Module_Two')
然后,要直接运行module_one.py
并仍使其能够使用lib.module_group.module_two
来加载Module_Two
,请使用类似以下内容的
$ PYTHONPATH="${PWD}:${PYTHONPATH}" python3 lib/module_group/module_one.py
Loaded Module_Two