安装pysph时遭遇C++编译器兼容性问题求助
安装PySPH时的编译错误与解决方法
问题场景
- 尝试安装PySPH,先后使用MSVC 2017和MSVC 2022编译器执行
pip install pysph命令 - 安装过程中编译失败,错误日志如下:
正在构建'pysph.base.octree'扩展 "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD "-IC:\Users\Matthew Scholar\AppData\Local\Temp\pip-build-env-8kmg9l2e\overlay\Lib\site-packages\numpy\core\include" "-Ic:\users\matthew scholar\appdata\local\programs\python\python38\include" "-Ic:\users\matthew scholar\appdata\local\programs\python\python38\Include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /Tppysph/base/octree.cpp /Fobuild\temp.win-amd64-cpython-38\Release\pysph/base/octree.obj /openmp octree.cpp c:\users\matthew scholar\appdata\local\temp\pip-build-env-8kmg9l2e\overlay\lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : 警告信息:正在使用已弃用的NumPy API,可通过#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION禁用 pysph/base/octree.cpp(9616): 错误 C3861: 未找到标识符'_Pragma' pysph/base/octree.cpp(9616): 错误 C2059: 语法错误: ';' pysph/base/octree.cpp(9634): 错误 C3861: 未找到标识符'_Pragma' pysph/base/octree.cpp(9634): 错误 C2059: 语法错误: ';' pysph/base/octree.cpp(9769): 错误 C3861: 未找到标识符'_Pragma' pysph/base/octree.cpp(9769): 错误 C2059: 语法错误: ';' pysph/base/octree.cpp(9787): 错误 C3861: 未找到标识符'_Pragma' pysph/base/octree.cpp(9787): 错误 C2059: 语法错误: ';' pysph/base/octree.cpp(9927): 错误 C2065: '__pyx_parallel_exc_type': 未声明的标识符 pysph/base/octree.cpp(9929): 错误 C2065: '__pyx_parallel_exc_type': 未声明的标识符 pysph/base/octree.cpp(9930): 错误 C2065: '__pyx_parallel_exc_type': 未声明的标识符 pysph/base/octree.cpp(9930): 错误 C2065: '__pyx_parallel_exc_value': 未声明的标识符 pysph/base/octree.cpp(9930): 错误 C2065: '__pyx_parallel_exc_tb': 未声明的标识符 pysph/base/octree.cpp(9931): 错误 C2065: '__pyx_parallel_filename': 未声明的标识符 pysph/base/octree.cpp(15447): 错误 C3010: '__pyx_L12_error': 不允许跳出OpenMP结构化块 C:\Users\Matthew Scholar\AppData\Local\Temp\pip-build-env-8kmg9l2e\overlay\Lib\site-packages\setuptools\command\build_py.py:202: Setuptools弃用警告:将'pysph.base'作为数据安装已被弃用,请在`packages`中列出它。 check.warn(importable) 错误:命令'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x64\\cl.exe'执行失败,退出代码2 ---------------------------------------- 错误:构建pysph的wheel包失败
解决方法
- 使用MSVC 2019搭配Python 3.8完成PySPH的安装
- 同时为Mayavi安装旧版本VTK以保证兼容性
内容的提问来源于stack exchange,提问作者Matthew Scholar
相关产品推荐
相关产品推荐

