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

ROS Melodic+Python3.9环境下tf_conversions及PyKDL编译问题求助

问题分析

编译python_orocos_kdl时出现Python版本不兼容错误,本质是CMake没有正确关联你的Anaconda Python3.9环境,而是调用了系统默认的低版本Python(比如ROS Melodic自带的Python2.7)。

解决步骤

1. 确保Anaconda环境激活

编译前先激活你的Python3.9环境:

conda activate 你的环境名

激活后确认版本与路径:

which python
python --version

需确保输出为Anaconda环境下的Python路径和3.9.12版本。

2. 重新配置CMake,指定Python路径

删除python_orocos_kdl下的build文件夹,重新执行cmake并显式指定Python路径:

cd python_orocos_kdl
rm -rf build
mkdir build && cd build
cmake .. \
  -DPYTHON_EXECUTABLE=$(which python) \
  -DPYTHON_INCLUDE_DIR=$(python -c "import sysconfig; print(sysconfig.get_path('include'))") \
  -DPYTHON_LIBRARY=$(python -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))")/libpython${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}.so

通过$(which python)直接绑定激活环境的Python,避免CMake误选其他版本。

3. 重新编译安装

配置完成后执行编译与安装:

make -j$(nproc)
sudo make install

4. 验证安装结果

在激活的Anaconda环境中测试:

python -c "import PyKDL; print('PyKDL imported successfully')"

无报错则安装成功,再调用tf_conversions的函数即可正常运行。

额外注意事项
  • ROS Melodic默认基于Python2.7,使用Python3环境运行ROS时,需确保所有依赖的Python包都安装在Anaconda环境内,避免版本冲突。
  • 编译前务必清理旧编译缓存,防止残留配置干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 02:38:18