跳轉到

指令碼開發 / 上傳使用者 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 中存在的目錄刪除、改名等。