Python 任务安装分发包与导入使用指南
本文介绍如何在 Python 任务运行时临时安装第三方包,并在后续代码中导入使用。
适用场景
- 需要在任务运行时临时安装第三方包。
- 需要从公网官方源(PyPI)或国内镜像(清华源等)安装包。
- 需要将包安装到
下的临时目录后再/tmp
。import
运行时安装说明
- Python 任务运行在临时 Pod 中,任务结束后环境会销毁。每次运行都需要重新安装依赖,不要依赖上一次的安装结果。
- Python 任务以非 Root 用户执行,不能向系统级
目录安装依赖。请使用site-packages
将包安装到--target
下的独立临时目录,并在导入前将该目录加入/tmp
。sys.path
仅用于当前任务运行期间的临时文件,不适合保存需要持久化的数据。/tmp
标准模板(推荐直接复用)
快速切换到清华源
公网访问 PyPI 较慢时,可以将模板中的
INDEX_URL 改为清华源:
常见错误与排查
报错:ModuleNotFoundError: No module named 'xxx'
ModuleNotFoundError: No module named 'xxx'按顺序检查:
- 是否使用了
,但没有把该目录加入--target
。sys.path - 是否在
之后才将目录加入import
。sys.path - 是否使用了
将路径加到末尾,导致包被其他同名模块遮蔽。建议使用sys.path.append()
。sys.path.insert(0, TARGET_DIR) - 包名与模块名是否一致(有些包
,但pip install A
)。import B
报错:Permission denied
Permission denied检查
--target 是否指向 /tmp 下的目录。不要使用 /home、系统 site-packages 或其他未明确允许写入的目录。联系我们
