在Conda环境中安装ParallelFDTD时无法找到Boost/Py-Boost
解决Windows下ParallelFDTD Python绑定安装的Boost查找问题
问题说明
在Windows机器上安装ParallelFDTD的Python绑定,已完成以下操作:
- 安装Windows SDK
- 安装CUDA Toolkit
- 成功创建并激活conda环境:
conda create -n PFDTD -c conda-forge boost py-boost cmake numpy scipy conda activate PFDTD
conda list显示已安装boost 1.73、py-boost 1.73、libboost 1.73及boost-cpp 1.68,但执行pip install git+https://github.com/AaltoRSE/ParallelFDTD.git时,CMake报错:
Could NOT find Boost (missing: Boost_INCLUDE_DIR system thread date_time unit_test_framework python38 chrono numpy38) (Required is at least version "1.41")
解决方案
方法1:设置conda环境对应的Boost环境变量
conda安装的Boost存放在你的环境目录下,先找到你的conda环境路径(默认示例:C:\Users\<你的用户名>\miniconda3\envs\PFDTD),然后设置以下环境变量:
BOOST_ROOT:<你的conda环境路径>\LibraryBOOST_INCLUDEDIR:<你的conda环境路径>\Library\includeBOOST_LIBRARYDIR:<你的conda环境路径>\Library\lib
设置完成后必须重启命令行,重新激活conda环境,再执行pip安装命令。
方法2:修改fork仓库的CMakeLists.txt
直接在CMake配置中指定Boost路径:
- 打开你fork的仓库根目录下的
CMakeLists.txt - 在
find_package(Boost ...)代码块之前添加以下配置(替换成你的conda环境路径):
set(BOOST_ROOT "C:/Users/<你的用户名>/miniconda3/envs/PFDTD/Library") set(Boost_INCLUDE_DIR "${BOOST_ROOT}/include") set(Boost_LIBRARY_DIR "${BOOST_ROOT}/lib") set(Boost_USE_STATIC_LIBS OFF) set(Boost_USE_MULTITHREADED ON)
注意路径使用斜杠/或双反斜杠\\,避免语法错误。
3. 保存文件后,重新执行pip安装(或本地clone后运行pip install .)
方法3:统一conda环境的Boost版本
环境中同时存在boost-cpp 1.68与其他1.73版本的Boost包,可能导致版本冲突,重新创建环境并指定统一版本:
conda create -n PFDTD -c conda-forge boost=1.73 py-boost=1.73 boost-cpp=1.73 cmake numpy scipy conda activate PFDTD
完成后再次执行pip安装命令。
额外注意
建议使用Visual Studio对应的x64原生工具命令提示符执行安装操作,确保CMake能正确调用Windows编译工具链,避免编译工具不匹配的问题。
内容的提问来源于stack exchange,提问作者SamW
相关产品推荐
相关产品推荐

