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

使用Conda环境搭配Nuitka编译含PIL的Python程序时出现ImportError问题求助

Conda环境搭配Nuitka编译含PIL的Python程序时出现ImportError问题求助

我最近在开发一个将PDF转换为图片的小程序,选用了pdf2image库,并用Nuitka将代码编译为exe文件。编译过程顺利完成,但运行生成的exe时却遭遇了ImportError,问题卡在PIL.Image模块导入_imaging的环节。

错误日志

$> # run the programm.
$> .\p2i.dist\p2i.exe
Traceback (most recent call last):
  File "C:\gitjob\p2i\P2I~1.DIS\p2i.py", line 6, in <module>
  File "C:\gitjob\p2i\P2I~1.DIS\pdf2image\__init__.py", line 5, in <module pdf2image>
  File "C:\gitjob\p2i\P2I~1.DIS\pdf2image\pdf2image.py", line 15, in <module pdf2image.pdf2image>
  File "C:\gitjob\p2i\P2I~1.DIS\PIL\Image.py", line 97, in <module PIL.Image>
ImportError

最小复现测试

经过多次测试,我发现一个仅导入PIL.Image的极简脚本,编译后同样会触发该错误:

极简测试脚本 p2i.py

from PIL import Image

if __name__ == "__main__":
    print("Test")

最初的环境搭建命令(触发问题的环境)

我最初使用Conda创建环境并安装所有依赖,命令如下:

# Anaconda Environment Path
$env_path = "(arbitrary env path)"
# Create an Anaconda Environment
conda create -p $env_path python=3.10 -y
conda install -p $env_path pillow pdf2image -y
conda install -p $env_path -c conda-forge nuitka -y

我在网上搜索了相关问题(PIL._imaging导入失败),折腾了两三天也没找到解决办法。后来我换了个思路,怀疑是不是环境本身的问题,于是新建了一个环境,改用pip安装所有依赖:

测试用的新环境搭建命令(解决问题的环境)

# Anaconda Environment Path
$env_path = "(arbitrary env path)"
# Create an Anaconda Environment
conda create -p $env_path python=3.10 -y
conda activate $env_path
# 不使用conda安装包,改用pip
pip install pillow pdf2image nuitka

结果出乎意料,用这个环境编译时,不需要添加任何额外的Nuitka参数,生成的exe就能正常运行。

现在我想请教大家:

  • 为什么用Conda安装依赖后,Nuitka编译会出现这个ImportError?
  • 有没有办法在Conda环境下解决这个问题,而不用切换到全pip安装的方式?

备注:内容来源于stack exchange,提问作者KLc3088

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 16:12:59