0%

python项目离线部署解决依赖问题

针对于客户纯内网环境部署python项目,最优的解决方式当然是docker部署。若使用宿主机部署方式,如何解决依赖问题就是一个大问题,常见的部署包管理器有:apt,yum。这里以Ubuntu为例,示例如何解决依赖问题。

1. 系统模块依赖

针对系统包的缺失,可以有两种方式解决:

  • 搭建系统源

  • 准备离线依赖包

    1. apt-get命令提供了download-only参数,可以把安装模块所需要的所有依赖包下载到本地,如:

      1
      apt-get install --download-only build-essential

      下载好的包默认路径为:/var/cache/apt/archives

    2. 将下载的依赖包打包拷贝到目标服务器

    3. 安装

      1
      dpkg -i *.deb

2. python包依赖

备注:导出项目依赖包

1
pipreqs ./ --encoding=utf-8

和系统依赖流程类似,python依赖解决也有两种办法:

  • 搭建pypi源

    下载pypi仓库就是一个庞大的工程,部署项目不推荐。

  • 离线安装依赖包

    1. pip download -r requirement.txt

      通过download,将项目需要的依赖包下载到本地

    2. 将下载好的依赖包拷贝到目标服务器

    3. 安装

      1
      ls | grep "*.whl" | xargs pip install

      若依赖包目录中包含源码安装的包,如:xxx.tar.gz,可以一起安装

      1
      ls | xargs pip install