我通常使用python3,但也使用一些带有ROS的python2。较长时间后,我尝试构建ros工作区,但得到的错误是
ImportError: "from catkin_pkg.package import parse_package" failed: No module named 'catkin_pkg'
Make sure that you have installed "catkin_pkg", it is up to date and on the PYTHONPATH.
CMake Error at /opt/ros/kinetic/share/catkin/cmake/safe_execute_process.cmake:11 (message):
execute_process(/home/work/py_venv/bin/python
"/opt/ros/kinetic/share/catkin/cmake/parse_package_xml.py"
"/opt/ros/kinetic/share/catkin/cmake/../package.xml"
"/home/work/catkin_ws/build/catkin_tools_prebuild/catkin/catkin_generated/version/package.cmake")
第一个目录/home/work/py_venv/bin/python
是python3的虚拟环境。我不确定为什么要看那里。我没有激活任何虚拟环境(至少是故意的)。我完全缺少的是标准python2安装的路径。应该在那里吗?
如果我在终端中输入echo $PYTHONPATH
,我将得到/opt/ros/kinetic/lib/python2.7/dist-packages
我猜有什么遗漏吗?如何正确设置此变量。安装时有什么价值?
我最近在python3中安装了venv,除此之外我不知道我对python所做的任何更改,因为它停止工作。
现在有很多问题。 如果您能回答任何一个问题,将不胜感激。
编辑:我知道发现主要问题是venv在path上前置,因此它在python3安装中寻找不包含catkin软件包的软件包。如何将其从路径中删除?
答案 0 :(得分:0)
如果要删除venv python路径,可以按照以下步骤进行操作,
echo $PATH
export PATH=<remove unwanted path>
通过这种方式,您可以删除venv python路径。
此外,请检查可能设置为python3的python --version
,如果需要也将其更改。
最后,检查PYTHONPATH
是否未正确引导位置更改并尝试。