问题:
系统重装后,打算重新部署一下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