python - 在 fnproject 函数中包含自己的项目代码
问题描述
我正在使用Fn Project作为 Oracle Cloud Functions 的一部分,我希望包含一些我自己编写的帮助函数,这些函数目前在其他一些程序中使用。我想包含这些函数,而不必将它们复制并粘贴到我的源代码中,我觉得有一种方法可以做到这一点,但我还没有找到。
这是我的目录结构的样子。名称已更改,以使其更易于理解。
- helper
- foo.py
- other
- example.py
- functions
- myfunc
- func.py
- func.yaml
- requirements.txt
目前,在example.py
我有以下内容:
from helper import foo
...
foo.bar()
当我写 func.py 时,我写了同样的东西,但是当我运行时fn deploy -app test_app
,fn invoke test_app myfunc
它在 import 语句上出错(我from helper import foo
在顶部运行了基本的 hello world 函数:
Error invoking function. status: 502 message: function failed
我的第一反应是放入helper
requirements.txt 文件,但这仅适用于pip
包。如何确保包含我自己的代码?
任何帮助将非常感激!
更新
到目前为止,我唯一的解决方案是将我的代码从字面上复制并粘贴到源文件中,这不是很容易维护。
解决方案
一旦你在from helper import foo
里面func.py
完成,包括库导入在内的整个代码都将在func.py
. 使用pip freeze > requirements.txt
主目录中的命令,您可以在requirements.txt
. 因此,当您创建 docker 映像时,它将从requirements.txt
.