跳转至

脚本开发 / 上传本地 Python 模块

在某些情况下,用户所需的 Python 模块并没有发布到 PyPi 平台,而是直接以文件形式存在。

这时,可以将这些文件上传到 DataFlux Func 的资源目录的「extra-python-packages/」目录中,直接在脚本中引用。

1. 上传 Python 模块

用户可以根据实际情况选择上传方式,从结果上来说没有任何区别。

直接上传到宿主机

如果用户具有宿主机的访问权限,可以直接通过您熟悉的 SSH 工具等将 Python 文件 / 目录上传到{安装目录}/data/resources/extra-python-packages/目录下。

默认安装目录为 /usr/local/dataflux-func,如果不清楚,可以使用 cat /etc/dataflux-func 查看

使用「文件管理」上传

如果用户没有宿主机的访问权限,可以开启「管理 / 实验性功能 / 启用文件管理」后,在「管理 / 文件管理」中上传。

为了防止用户上传的 zip 压缩包在解压后破坏目录结构,在「文件管理」中解压会强制创建目录。

因此,如果上传的 zip 压缩包本身就有一层目录,解压后会多一层目录结构。

根据实际情况,将 Python 模块的目录移动到/extra-python-packages/xxxxx即可。

回到extra-python-packages目录,确认需要上传的 Python 文件 / 目录。

2. 使用上传的 Python 模块

假设上传的 Python 模块如下:

my_pkg/__init__.py
1
from my_pkg.hello_world import hello_world
my_pkg/hello_world.py
1
2
def hello_world():
    return 'Hello, world!!!'

那么,可以直接在脚本中 import 此模块并使用,如:

Python
1
2
3
4
5
import my_pkg

def run():
    data = my_pkg.hello_world()
    print(data)

3. 注意事项

自行上传的 Python 模块注意不要与其他 Python 模块重名,也不要将原本extra-python-packages中存在的目录删除、改名等。