You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pyarmor混淆脚本在GCP Vertex AI运行时缺失libpython3.9.so.1.0求助

问题根源

Pyarmor混淆后的Python代码与编译时的Python版本强绑定,你本地用Python3.9.12混淆脚本,生成的运行时依赖libpython3.9.so.1.0,但Docker镜像用的是Python3.7.12,系统中没有该库,导致导入错误。通过pip安装libpython无法解决,因为该包并非系统级Python库的安装方式,且版本不匹配。

解决方案

方案一:更换Docker基础镜像为Python3.9版本

选择与本地混淆环境Python版本一致的GCP镜像,确保运行环境版本匹配:

# 使用内置Python3.9的GCP sklearn镜像
FROM gcr.io/deeplearning-platform-release/sklearn-cpu.1-0

WORKDIR /

COPY dist /dist

RUN pip install -r dist/mlservices/requirements.txt

ENTRYPOINT ["python", "-m", "dist.mlservices.main"]

如果找不到对应版本的GCP镜像,也可以用官方Python3.9基础镜像自行安装依赖:

FROM python:3.9-slim

WORKDIR /

COPY dist /dist

# 安装sklearn及其他依赖(根据需求调整版本)
RUN pip install scikit-learn==0.23.2 -r dist/mlservices/requirements.txt

ENTRYPOINT ["python", "-m", "dist.mlservices.main"]

方案二:在原有镜像中安装Python3.9并切换默认版本

若必须使用原Python3.7的GCP镜像,可在镜像内安装Python3.9并设置为默认运行环境:

FROM gcr.io/deeplearning-platform-release/sklearn-cpu.0-23

WORKDIR /

# 安装Python3.9及依赖工具
RUN apt-get update && apt-get install -y --no-install-recommends \
    python3.9 python3.9-dev python3-pip \
    && rm -rf /var/lib/apt/lists/*

# 将Python3.9设为默认版本
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1
RUN update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

COPY dist /dist

RUN pip install -r dist/mlservices/requirements.txt

ENTRYPOINT ["python", "-m", "dist.mlservices.main"]

方案三:在目标Docker环境中重新混淆脚本

在Python3.7的镜像环境内重新运行Pyarmor混淆,让生成的代码适配镜像版本:

  1. 启动目标镜像的交互容器:
docker run -it -v $(pwd):/app gcr.io/deeplearning-platform-release/sklearn-cpu.0-23 /bin/bash
  1. 在容器内安装Pyarmor8.1.2:
pip install pyarmor==8.1.2
  1. 执行与本地相同的混淆步骤,生成适配Python3.7的dist目录
  2. 用新生成的dist目录构建Docker镜像

内容的提问来源于stack exchange,提问作者Ni43

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 19:53:09