跳轉到

指令碼開發 / 安裝第三方包

DataFlux Func 安裝完畢後,由於 DataFlux Func 本身就需要第三方包,因此這些包可以在指令碼中直接使用,無需另外安裝。

具體預裝的第三方包列表,可以在「管理 / PIP 工具」中檢視,其中「內建」列標記為 的即為預裝的第三方包。

使用者如果需要額外安裝第三方包,也可以在「管理 / PIP 工具」中進行安裝。

1. 公網安裝 Python 包

如果需要額外第三方包的 DataFlux Func 可以直接訪問公網,那麼可以直接使用系統自帶的「PIP 工具」進行安裝。

1.1 開啟「PIP 工具」

在「管理 / 實驗性功能」中開啟「PIP 工具」。

enable-pip-tool.png

1.2 安裝第三方包

在「PIP 工具」中,可以選擇 Pypi 映象,輸入包名後,即可安裝。

如果需要指定版本號,可以使用 package==1.2.3 的格式來安裝。

install-package.png

選擇映象

如果您的伺服器由於一些原因,無法直接訪問 PYPI,此時可以選擇不同的 PIP 映象。

2. 無公網安裝 Python 包

如果 DataFlux Func 所在伺服器因各種原因,無法訪問外網,那麼通常的 PIP 方式無法安裝第三方包。

此時,需要另外一個相同架構,且可以訪問公網的 DataFlux Func,用來安裝第三方包。安裝完成後,將整個 extra-python-packages 目錄複製至無法訪問公網的 DataFlux Func 中即可。

下文中,可以訪問公網的 DataFlux Func 簡稱「有網 Func」;無法訪問公網的 DataFlux Func 簡稱「無網 Func」

2.1 有網 Func 安裝第三方包

此步驟請參考上文「可以訪問公網時,安裝 Pypi 中的包」

2.2 開啟「檔案管理器模組」

在「管理 / 實驗性功能」中開啟「檔案管理器模組」。

enable-file-manager.png

2.3 從有網 Func 下載第三方包目錄

找到 extra-python-packages 目錄(所有額外安裝的 Python 包內容都會存放於此),選擇「更多 / 壓縮」,並下載 zip 檔案。

zip-pkg.png

download-pkg.png

2.4 向無網 Func 上傳第三方包目錄

前往「無網 Func」,刪除原先的第三方包存放目錄,並上傳上一步中下載的 zip 檔案,並解壓。

delete-pkg.png

upload-pkg.png

unzip-pkg.png

unzip-pkg-done.png

2.5 重啟無網 Func

此步驟請參考 部署和維護 / 升級和重啟

注意事項

DataFlux Func 執行在 Docker 中,Python 的執行環境也依賴容器中的環境。

因此,請勿將本機,或其他非 DataFlux Func 容器內的 Python 安裝後的內容複製至 DataFlux Func 中。否則往往會產生奇怪的問題。

此外:「有網 Func」和「無網 Func」必須保證為相同的硬體架構,如均為 x86_64aarch64

3. 為什麼不建議透過上傳 Wheel 包的方式直接安裝 Python 包?

向伺服器上傳 Wheel 包後,直接透過 PIP 安裝的方式,理論上是可行的,但實際絕大多數情況下並不能成功。

原因在於所上傳的 Wheel 包本身可能還依賴其他包,單純上傳程式碼中直接使用的 Wheel 包無法滿足依賴關係。越是功能強大的包,一般來說所依賴的其他包更多,依賴層級更深。最終可能讓操作者陷入依賴地獄。

因此,除非所需安裝的包不依賴其他任何包,否則一般不建議使用上傳 Wheel 包的方式安裝 Python 第三方包。