Aspose.Slides for Python via .NET ubuntu22.04使用报错

Aspose.Slides for Python via .NET在Ubuntu22.04中使用报错,运行环境为python3.11.5,代码如下:

import aspose.slides as slides

print("Aspose.Slides imported.")
pres = slides.Presentation()
print("Presentation object created.")

报错信息如下:

Process terminated. Couldn’t find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.
at System.Environment.FailFast(System.String)
at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode()
at System.Globalization.GlobalizationMode…cctor()
at System.Globalization.CultureData.CreateCultureWithInvariantData()
at System.Globalization.CultureData.get_Invariant()
at System.Globalization.CultureInfo…cctor()
at System.Globalization.CultureInfo.GetCultureInfoHelper(Int32, System.String, System.String)
at System.Globalization.CultureInfo.GetCultureInfo(System.String)
at System.Reflection.RuntimeAssembly.GetLocale()
at System.Reflection.RuntimeAssembly.GetName(Boolean)
at System.Reflection.Assembly.GetName()
at .(System.Reflection.Assembly)
at .(Int32, Boolean)
at .(Int32)
at …cctor()
at Aspose.Slides.Presentation…cctor()
at Aspose.Slides.Presentation…ctor()
at WrpNs_Aspose.WrpNs_Slides.WrpCs_Presenta_041D11ED.ctor_000_Presentation()
Aborted (core dumped)

经检查,机器上已经安装了libicu70:amd64
该如何解决该问题?

@zeongwan

在Ubuntu 22.04上使用Aspose.Slides for Python via .NET时,您可能会遇到与ICU(国际化组件)包相关的错误提示。尽管您已经安装了libicu70:amd64,但可能需要设置环境变量以解决此问题。

请尝试以下步骤:

  1. 设置环境变量:在运行您的Python代码之前,设置System.Globalization.Invarianttrue。可以通过在终端中运行以下命令来实现:

    export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true
    
  2. 检查ICU安装:确保您的系统上安装了正确版本的ICU库。您可以使用以下命令检查:

    dpkg -l | grep libicu
    
  3. 重启终端:在设置环境变量后,重启终端或重新加载配置,以确保更改生效。

如果问题仍然存在,建议您查看Aspose的官方文档或寻求社区支持。

@zeongwan,
感谢您联系免费技术支持。下面的 Dockerfile 演示了如何配置 Ubuntu 22.04,以使用 Aspose.Slides for Python via .NET。

FROM ubuntu:22.04

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y \
    python3 python3-pip python3-venv \
    libgdiplus \
    wget ca-certificates \
    && rm -rf /var/lib/apt/lists/*

RUN echo "deb [arch=amd64] http://security.ubuntu.com/ubuntu focal-security main" > /etc/apt/sources.list.d/focal.list \
 && apt-get update \
 && apt-get install -y --no-install-recommends libssl1.1 \
 && rm -f /etc/apt/sources.list.d/focal.list \
 && apt-get clean && rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY . .

RUN pip3 install -r requirements.txt

CMD ["python3", "main.py"]

希望这对您有所帮助。如果问题仍然存在,请提供可在我们这边复现错误的分步操作说明。

我看这个docker file里面主要安装的依赖除了python版本相关的,仅安装了libssl1.1,但是我已经安装了libssl1.1还是运行出现原帖中的报错,应该如何进行进一步的排查?是否还以来了其他报错?

@zeongwan,
很遗憾,我目前还无法回答您的问题。我未能复现您遇到的错误。请尝试将问题进行最小化并加以隔离,并提供可复现该错误的分步操作说明。收到后我们将尽力协助解决。

我的操作系统版本为
NAME=“Ubuntu”
VERSION_ID=“22.04”
VERSION=“22.04.5 LTS (Jammy Jellyfish)”
用的python版本为3.11.5,使用的依赖版本为Aspose.Slides==24.11.0
机器也已经安装了libssl1.1相关库,具体执行代码为:

import aspose.slides as slides

print("Aspose.Slides imported.")
pres = slides.Presentation()
print("Presentation object created.")

出现了报错:

Process terminated. Couldn’t find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.
at System.Environment.FailFast(System.String)
at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode()
at System.Globalization.GlobalizationMode…cctor()
at System.Globalization.CultureData.CreateCultureWithInvariantData()
at System.Globalization.CultureData.get_Invariant()
at System.Globalization.CultureInfo…cctor()
at System.Globalization.CultureInfo.GetCultureInfoHelper(Int32, System.String, System.String)
at System.Globalization.CultureInfo.GetCultureInfo(System.String)
at System.Reflection.RuntimeAssembly.GetLocale()
at System.Reflection.RuntimeAssembly.GetName(Boolean)
at System.Reflection.Assembly.GetName()
at .(System.Reflection.Assembly)
at .(Int32, Boolean)
at .(Int32)
at …cctor()
at Aspose.Slides.Presentation…cctor()
at Aspose.Slides.Presentation…ctor()
at WrpNs_Aspose.WrpNs_Slides.WrpCs_Presenta_041D11ED.ctor_000_Presentation()
Aborted (core dumped)

经检查,机器上也已经安装了libicu-dev、libcu70两个库,还是出现上面的报错,该如何定位解决该问题?

@zeongwan,
请注意,在 Ubuntu 上使用 Aspose.Slides for Python via .NET 需要安装 libgdiplus。安装 libgdiplus 后,错误应当消失。

System Requirements|Aspose.Slides for Python Documentation

我也已经在ubuntu上安装了libgdiplus 6.0.4+dfsg-2,还是出现相同的报错。。

@zeongwan,
很遗憾,我们目前尚不清楚该错误的原因。我们需要用于复现该问题的分步说明,以便继续研究这一案例。

还需要我具体提供什么分步的说明?

@zeongwan,
很遗憾,我不知道要重现此错误具体需要哪些分步说明。请尽量隔离问题并将这些说明提供给我们。随后我们会尽一切可能帮助您解决这个问题。