跳转至

脚本开发 / 上传用户 Python 模块

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

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

1. 上传 Python 模块

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

直接上传到宿主机

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

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

使用「文件管理」上传

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

enable-file-manager.png

upload-zip-file.png

unzip-file.png

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

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

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

move-user-pkg.png

move-dest.png

前往 user-python-packages/ 目录,确认需要上传的 Python 包目录。

user-pkg-ready.png

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)

use-user-pkg.png

3. 注意事项

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