ros+python3設定

ros 設置 python3 版本環境的流程

奕安 published on

2 min, 261 words

Ubuntu 16.04 上面的 ROS lunar 預設使用 python2.7

安裝pyenv

使用pyenv來控管系統上的不同 python 版本是目前 python 社群的發展趨勢

pyenv安裝教學

安裝 python3.6.5

pyenv install 3.6.5
pyenv global 3.6.5

更改預設的shell變數 : $PYTHONPATH

ros主要藉由 $PYTHONPATH 變數來獲得系統上有關python的資訊 把下面這行放到 ~/.bashrc 的檔案尾端

export PYTHONPATH=$(pyenv root)/shims:$PYTHONPATH

更改之後會讓 ros 預設先讀取目前設定的 python 版本 如果只做完這步驟就使用 catkin_make 來編譯的話八成會跳出找不到套件的問題

Traceback (most recent call last):
  File "/opt/ros/lunar/share/gencpp/cmake/../../../lib/gencpp/gen_cpp.py", line 41, in <module>
    import genmsg.template_tools
  File "/opt/ros/lunar/lib/python2.7/dist-packages/genmsg/template_tools.py", line 39, in <module>
    import em
ModuleNotFoundError: No module named 'em'

手動安裝相依性套件

會需要做到這步驟目前猜測是 ubuntu 的套件 python-catkin-pkgpyenv 兩者之間的整合性並不太好。

pyenv global 3.6.5
pip install -U rosdep rosinstall_generator wstool rosinstall six vcstools empy