脚本开发 / 安装第三方包
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 镜像。
镜像 | 实测下载速度 | 说明 |
---|---|---|
豆瓣镜像 | 10.4 MB/s | 推荐在安装容量较大的包时使用 |
清华大学镜像 | 1.17 MB/s | PIP 工具默认使用的镜像 考虑到其背景比私企更可靠,一般情况下都推荐使用 |
阿里云镜像 | 187 KB/s | 存在明显限速 此外,阿里云镜像曾经中断过数月,一般不推荐使用 |
以上表格实测时间为 2023-02-20,测试用 DataFlux Func 位于阿里云 ECS
注意事项
由于浏览器限制,在安装一些特别巨大,或者耗时较长的第三方包(如各种 AI 库、机器学习库等),可能会产生页面超时的问题。
此时,可以选择登录 DataFlux Func 所在服务器,使用命令进行安装。
具体安装命令在「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 第三方包。