跳轉至

腳本開發 / 上傳用户 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 中存在的目錄刪除、改名等。