安装dlib报错:../numpy.h(35,22): error C2065: “ssize _t”: 未声明的标识符

问题:

系统重装后,打算重新部署一下dlib,结果在执行 python setup.py install 之后,出现了以下错误:

D:\Develop\python3.10.5\packages\dlib-19.21\dlib\external\pybind11\include\pybind11/numpy.h(35,22): error C2065: “ssize _t”: 未声明的标识符

解决办法:

这只是在Vaex构建过程中的第一个问题,因为python3.10 还不支持。
部分解是编辑…/pybind11/include/pybind11/numpy.h以提供ssize_t的定义。

  • 在#include statements之后,在文件顶部附近找到以下代码行:
#if defined(_MSC_VER)
#  pragma warning(push)
#  pragma warning(disable: 4127) // warning C4127: Conditional expression is constant
#endif
  • 改为:
#if defined(_MSC_VER)
#  pragma warning(push)
#  pragma warning(disable: 4127) // warning C4127: Conditional expression is constant
typedef SSIZE_T ssize_t;
#endif

然后回到dlib的目录下重新执行 python setup.py install 即可完成安装

> python setup.py install
完整错误如下:
-- Build files have been written to: D:/Develop/python3.10.5/packages/dlib-19.21/build/temp.win-amd64-cpython-310/Release
Invoking CMake build: 'cmake --build . --config Release -- /m'
用于 .NET Framework 的 Microsoft (R) 生成引擎版本 16.11.2+f32259642
版权所有(C) Microsoft Corporation。保留所有权利。

  dlib.vcxproj -> D:\Develop\python3.10.5\packages\dlib-19.21\build\temp.win-amd64-cpython-310\Release\dlib_build\Relea
  se\dlib19.21.0_release_64bit_msvc1929.lib
  dlib.cpp
  matrix.cpp
  vector.cpp
  svm_c_trainer.cpp
  svm_rank_trainer.cpp
  decision_functions.cpp
D:\Develop\python3.10.5\packages\dlib-19.21\dlib\external\pybind11\include\pybind11/numpy.h(35,22): error C2065: “ssize
_t”: 未声明的标识符 (编译源文件 D:\Develop\python3.10.5\packages\dlib-19.21\tools\python\src\svm_rank_trainer.cpp) [D:\Develop\pyth
on3.10.5\packages\dlib-19.21\build\temp.win-amd64-cpython-310\Release\_dlib_pybind11.vcxproj]
D:\Develop\python3.10.5\packages\dlib-19.21\dlib\external\pybind11\include\pybind11/numpy.h(35,31): error C2338: ssize_
t != Py_intptr_t (编译源文件 D:\Develop\python3.10.5\packages\dlib-19.21\tools\python\src\svm_rank_trainer.cpp) [D:\Develop\
python3.10.5\packages\dlib-19.21\build\temp.win-amd64-cpython-310\Release\_dlib_pybind11.vcxproj]
D:\Develop\python3.10.5\packages\dlib-19.21\dlib\external\pybind11\include\pybind11/numpy.h(35,22): error C2065: “ssize
_t”: 未声明的标识符 (编译源文件 D:\Develop\python3.10.5\packages\dlib-19.21\tools\python\src\svm_c_trainer.cpp) [D:\Develop\python3
.10.5\packages\dlib-19.21\build\temp.win-amd64-cpython-310\Release\_dlib_pybind11.vcxproj]
D:\Develop\python3.10.5\packages\dlib-19.21\dlib\external\pybind11\include\pybind11/numpy.h(35,22): error C2065: “ssize
_t”: 未声明的标识符 (编译源文件 D:\Develop\python3.10.5\packages\dlib-19.21\tools\python\src\decision_functions.cpp) [D:\Develop\py
thon3.10.5\packages\dlib-19.21\build\temp.win-amd64-cpython-310\Release\_dlib_pybind11.vcxproj]
D:\Develop\python3.10.5\packages\dlib-19.21\dlib\external\pybind11\include\pybind11/numpy.h(35,31): error C2338: ssize_
t != Py_intptr_t (编译源文件 D:\Develop\python3.10.5\packages\dlib-19.21\tools\python\src\svm_c_trainer.cpp) [D:\Develop\pyt
hon3.10.5\packages\dlib-19.21\build\temp.win-amd64-cpython-310\Release\_dlib_pybind11.vcxproj]
D:\Develop\python3.10.5\packages\dlib-19.21\dlib\external\pybind11\include\pybind11/numpy.h(35,31): error C2338: ssize_
t != Py_intptr_t (编译源文件 D:\Develop\python3.10.5\packages\dlib-19.21\tools\python\src\decision_functions.cpp) [D:\Develo
p\python3.10.5\packages\dlib-19.21\build\temp.win-amd64-cpython-310\Release\_dlib_pybind11.vcxproj]
D:\Develop\python3.10.5\packages\dlib-19.21\dlib\external\pybind11\include\pybind11/numpy.h(35,22): error C2065: “ssize
_t”: 未声明的标识符 (编译源文件 D:\Develop\python3.10.5\packages\dlib-19.21\tools\python\src\vector.cpp) [D:\Develop\python3.10.5\p
ackages\dlib-19.21\build\temp.win-amd64-cpython-310\Release\_dlib_pybind11.vcxproj]
D:\Develop\python3.10.5\packages\dlib-19.21\dlib\external\pybind11\include\pybind11/numpy.h(35,22): error C2065: “ssize
_t”: 未声明的标识符 (编译源文件 D:\Develop\python3.10.5\packages\dlib-19.21\tools\python\src\dlib.cpp) [D:\Develop\python3.10.5\pac
kages\dlib-19.21\build\temp.win-amd64-cpython-310\Release\_dlib_pybind11.vcxproj]
D:\Develop\python3.10.5\packages\dlib-19.21\dlib\external\pybind11\include\pybind11/numpy.h(35,31): error C2338: ssize_
t != Py_intptr_t (编译源文件 D:\Develop\python3.10.5\packages\dlib-19.21\tools\python\src\vector.cpp) [D:\Develop\python3.10
.5\packages\dlib-19.21\build\temp.win-amd64-cpython-310\Release\_dlib_pybind11.vcxproj]
D:\Develop\python3.10.5\packages\dlib-19.21\dlib\external\pybind11\include\pybind11/numpy.h(35,31): error C2338: ssize_
t != Py_intptr_t (编译源文件 D:\Develop\python3.10.5\packages\dlib-19.21\tools\python\src\dlib.cpp) [D:\Develop\python3.10.5
\packages\dlib-19.21\build\temp.win-amd64-cpython-310\Release\_dlib_pybind11.vcxproj]
D:\Develop\python3.10.5\packages\dlib-19.21\dlib\external\pybind11\include\pybind11/numpy.h(35,22): error C2065: “ssize
_t”: 未声明的标识符 (编译源文件 D:\Develop\python3.10.5\packages\dlib-19.21\tools\python\src\matrix.cpp) [D:\Develop\python3.10.5\p
ackages\dlib-19.21\build\temp.win-amd64-cpython-310\Release\_dlib_pybind11.vcxproj]
D:\Develop\python3.10.5\packages\dlib-19.21\dlib\external\pybind11\include\pybind11/numpy.h(35,31): error C2338: ssize_
t != Py_intptr_t (编译源文件 D:\Develop\python3.10.5\packages\dlib-19.21\tools\python\src\matrix.cpp) [D:\Develop\python3.10
.5\packages\dlib-19.21\build\temp.win-amd64-cpython-310\Release\_dlib_pybind11.vcxproj]
D:\Develop\python3.10.5\packages\dlib-19.21\dlib\image_transforms/morphological_operations.h(1,1): warning C4819: 该文件包含
不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 (编译源文件 D:\Develop\python3.10.5\packages\dlib-19.21\tools\python\src\vect
or.cpp) [D:\Develop\python3.10.5\packages\dlib-19.21\build\temp.win-amd64-cpython-310\Release\_dlib_pybind11.vcxproj]

原文链接:https://cloud.tencent.com/developer/ask/sof/106760014
参考链接:https://stackoverflow.com/questions/71364994

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值