我正在尝试在我的ROS环境中使用tkinter,但在设置它时遇到了一些问题。我像这样将它添加到我的packages.xml
文件中
<build_depend>roscpp</build_depend>
<build_depend>rospy</build_depend>
<build_depend>std_msgs</build_depend>
<depend>python-tk</depend>
<build_export_depend>roscpp</build_export_depend>
<build_export_depend>rospy</build_export_depend>
<build_export_depend>std_msgs</build_export_depend>
<exec_depend>roscpp</exec_depend>
<exec_depend>rospy</exec_depend>
<exec_depend>std_msgs</exec_depend>
但是当我安装带有rosdep install [my package]
的包时,我所在的节点import tkinter
仍然不会运行,而是返回ImportError: No module named tkinter
。我对ROS比较陌生,以前没有安装过第三方软件包,所以我不确定是否遗漏了什么。提前感谢您的帮助
如果是第三方库/包,ros可能不知道如何安装它。如果安装正确,rosdep应该有一个规则缓存,用于安装由社区手动创建的各种软件包。如果一切正常,当您运行
rosdep install my_new_pkg
时,它应该是All required rosdeps installed successfully
,或者是在失败报告时这意味着没有关于如何安装的预定义规则。 (是否应使用pip/pip3?搜索apt?apt安装ros版本tkinter或apt安装tkinter?) 这并不是说它不能完成,但如果不添加规则,它就不能完成。但是,如果您通过其他方式安装,它仍会检查是否已安装。您可以尝试使用
rosdep update
将缓存更新为全局缓存,但这对tkinter没有帮助这是rosdep tutorial for system deps。如果您有一堆第三方python包,那么可以使用普通的python env+requirements.txt文件。 (例如,使用pyenv+virtualenv+direnv在requirements.txt上自动调用pip install) 否则,您可以在CMakeLists.txt文件中设置一个钩子,以便在每次编译之前调用requirements.txt文件上的pip install,或者使用其他方法
编辑:记住ROS Melodic&;老年人使用Python2。在python2,according to the docs中,它是
import Tkinter
。小写导入是python3的一个规范相关问题 更多 >
编程相关推荐