我正在使用Fn Project作为Oracle云函数的一部分,我希望包含一些我自己编写的助手函数,这些函数目前在其他一些程序中使用。我希望包含这些函数,而不必将它们复制并粘贴到我的源代码中,我觉得有一种方法可以做到这一点,但我还没有找到。
以下是我的目录结构。为了更容易理解,已经更改了名称。
- 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
包。如何确保包含我自己的代码?
任何帮助都将不胜感激!
更新
到目前为止,我唯一的解决方案是将代码复制并粘贴到源文件中,这不是很容易维护。
在func.py
中执行from helper import foo
后,包括库导入在内的整个代码都将在func.py
中执行。使用主目录中的命令pip freeze > requirements.txt
,可以在requirements.txt
中列出项目的所有依赖库。因此,当您创建docker映像时,它将安装requirements.txt
中的所有内容。