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

安装accimage库时遇编译错误:无法找到jpeglib.h文件

编译accimage时提示找不到jpeglib.h的解决方法

问题详情

执行python setup.py build编译accimage时出现以下错误:

PS E:\Working and Learning\biancheng\cnnimageretrieval-pytorch-master\accimage-master> python setup.py build
running build
running build_ext
building 'accimage' extension
F:\App\VS\VC\Tools\MSVC\14.33.31629\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:/jpeg-turbo64/include -IC:/Users/KAI/opt/intel/ipp/include -IE:\Anaconda\include -IE:\Anaconda\include -IF:\App\VS\VC\Tools\MSVC\14.33.31629\include -IF:\App\VS\VC\Tools\MSVC\14.33.31629\ATLMFC\include -IF:\App\VS\VC\Auxiliary\VS\include "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\cppwinrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" /Tcaccimagemodule.c /Fobuild\temp.win-amd64-3.8\Release\accimagemodule.obj
accimagemodule.c
F:\App\VS\VC\Tools\MSVC\14.33.31629\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:/jpeg-turbo64/include -IC:/Users/KAI/opt/intel/ipp/include -IE:\Anaconda\include -IE:\Anaconda\include -IF:\App\VS\VC\Tools\MSVC\14.33.31629\include -IF:\App\VS\VC\Tools\MSVC\14.33.31629\ATLMFC\include -IF:\App\VS\VC\Auxiliary\VS\include "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\cppwinrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" /Tcjpegloader.c /Fobuild\temp.win-amd64-3.8\Release\jpegloader.obj
jpegloader.c
jpegloader.c(5): fatal error C1083: 无法打开包括文件: “jpeglib.h”: No such file or directory
error: command 'F:\\App\\VS\\VC\\Tools\\MSVC\\14.33.31629\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2

当前setup.py配置如下:

from distutils.core import setup, Extension

accimage = Extension(
    "accimage",
    include_dirs=["C:/jpeg-turbo64/include", "C:/Users/KAI/opt/intel/ipp/include"],
    libraries=["jpeg", "ippi", "ipps"],
    library_dirs=["C:/jpeg-turbo-gcc64/lib", "C:/Users/KAI/opt/intel/ipp/Lib"],
    sources=["accimagemodule.c", "jpegloader.c", "imageops.c"],
)

setup(
    name="accimage",
    version="0.2.0",
    description="Accelerated image loader and preprocessor for Torch",
    author="Marat Dukhan",
    author_email="maratek@gmail.com",
    ext_modules=[accimage],
)

解决步骤

  • 验证头文件路径正确性
    打开文件管理器,检查C:/jpeg-turbo64/include目录下是否存在jpeglib.h。如果文件在include/jpeg子目录下,需要把include_dirs改为C:/jpeg-turbo64/include/jpeg,MSVC默认不会递归查找子目录,必须指定到包含头文件的直接目录。

  • 统一路径前缀
    setup.py中include_dirs用的是C:/jpeg-turbo64/include,但library_dirs是C:/jpeg-turbo-gcc64/lib,两个路径前缀不一致,大概率是安装jpeg-turbo时的路径拼写错误。确认实际安装路径后,把两个路径统一,比如如果jpeg-turbo安装在C:/jpeg-turbo64,则library_dirs改为C:/jpeg-turbo64/lib。

  • 匹配编译器与库的架构
    当前使用的是x64版本的MSVC编译器(HostX86\x64\cl.exe),必须确保下载的jpeg-turbo是64位版本。如果安装的是32位jpeg-turbo,即使路径正确,64位编译器也无法正确识别头文件和库文件。

  • 临时设置环境变量辅助查找
    在执行build命令前,先在Powershell中设置INCLUDE环境变量,添加jpeg-turbo的include路径:

    $env:INCLUDE += ";C:/jpeg-turbo64/include"
    

    再执行python setup.py build,让编译器优先从该路径查找头文件。

  • 尝试预编译包安装
    如果手动编译问题无法解决,可以直接用conda安装预编译版本,跳过编译步骤:

    conda install -c conda-forge accimage
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:15:36