指令碼開發 / 安裝第三方包
DataFlux Func 安裝完畢後,由於 DataFlux Func 本身就需要第三方包,因此這些包可以在指令碼中直接使用,無需另外安裝。
具體預裝的第三方包列表,可以在「管理 / PIP 工具」中檢視,其中「內建」列標記為 是
的即為預裝的第三方包。
使用者如果需要額外安裝第三方包,也可以在「管理 / PIP 工具」中進行安裝。
1. 公網安裝 Python 包
如果需要額外第三方包的 DataFlux Func 可以直接訪問公網,那麼可以直接使用系統自帶的「PIP 工具」進行安裝。
1.1 開啟「PIP 工具」
在「管理 / 實驗性功能」中開啟「PIP 工具」。
1.2 安裝第三方包
在「PIP 工具」中,可以選擇 Pypi 映象,輸入包名後,即可安裝。
如果需要指定版本號,可以使用 package==1.2.3
的格式來安裝。
選擇映象
如果您的伺服器由於一些原因,無法直接訪問 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 開啟「檔案管理器模組」
在「管理 / 實驗性功能」中開啟「檔案管理器模組」。
2.3 從有網 Func 下載第三方包目錄
找到 extra-python-packages
目錄(所有額外安裝的 Python 包內容都會存放於此),選擇「更多 / 壓縮」,並下載 zip 檔案。
2.4 向無網 Func 上傳第三方包目錄
前往「無網 Func」,刪除原先的第三方包存放目錄,並上傳上一步中下載的 zip 檔案,並解壓。
2.5 重啟無網 Func
此步驟請參考 部署和維護 / 升級和重啟
注意事項
DataFlux Func 執行在 Docker 中,Python 的執行環境也依賴容器中的環境。
因此,請勿將本機,或其他非 DataFlux Func 容器內的 Python 安裝後的內容複製至 DataFlux Func 中。否則往往會產生奇怪的問題。
此外:「有網 Func」和「無網 Func」必須保證為相同的硬體架構,如均為 x86_64
或 aarch64
3. 為什麼不建議透過上傳 Wheel 包的方式直接安裝 Python 包?
向伺服器上傳 Wheel 包後,直接透過 PIP 安裝的方式,理論上是可行的,但實際絕大多數情況下並不能成功。
原因在於所上傳的 Wheel 包本身可能還依賴其他包,單純上傳程式碼中直接使用的 Wheel 包無法滿足依賴關係。越是功能強大的包,一般來說所依賴的其他包更多,依賴層級更深。最終可能讓操作者陷入依賴地獄。
因此,除非所需安裝的包不依賴其他任何包,否則一般不建議使用上傳 Wheel 包的方式安裝 Python 第三方包。