我有一个Express服务器,该服务器的端点连接到python脚本。从快速端点调用的python脚本在另一个python脚本中调用一个函数。
在Express方面,项目层次结构如下所示:
app.js
路线(文件夹)
|-> get.js
在我的apps.js文件中,我具有以下几行代码:
let getRouter = require('./routes/get');
app.use('/get', getRouter);
在我的get.js文件中,我有一个子进程,该子进程调用名为BaseGet.py的python脚本。
在这个python文件中,我使用sys获取从快速服务器端点传入的参数,并将这些值传递到我从另一个名为GetData.py的文件中导入的函数中。
这是python文件夹结构:
基本(文件夹)
|-> BaseGet.py
助手
|-> GetData.py
在BaseGet.py中,我有以下代码行:
GetData = importlib.import_module("Helper.GetData")
我在GetData模块(文件)中调用一个名为get_data的函数,如下所示:
GetData.get_data()
当我仅在python中运行此函数时,函数和导入均按预期运行,并显示正确的输出。这是因为我是在pycharm上运行它的,而没有使用硬编码字符串的服务器部分,而不是从sys.argv获取它们。
但是,当我尝试使用Express端点时,出现以下错误:
导入错误:没有名为Base.GetData的模块
我怀疑这是因为导入时路径不正确,或者从子进程调用之时就以某种方式更改了路径。谁能提供有关如何解决此问题的帮助?谢谢!