匯總一下在網上找到的Anaconda與ROS沖突解決方法,如果還有其他人找到其他方法,歡迎留言。
anaconda和ros的安裝就不介紹了。
1. 在某視頻網站上一個印度小哥提出的方法
安裝完成后,在.bashrc/會出現:
# >>> conda initialize >>> # !! Contents within this block are managed by 'conda init' !! __conda_setup="$('/home/“user”/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)" if [ $? -eq 0 ]; then eval "$__conda_setup" else if [ -f "/home/"user"/anaconda3/etc/profile.d/conda.sh" ]; then . "/home/"user"/anaconda3/etc/profile.d/conda.sh" else export PATH="/home/"user"/anaconda3/bin:$PATH" fi fi unset __conda_setup # <<< conda initialize <<<
這時,你輸入在終端輸入
$ python
會看到版本號信息:
Python 3.7.3 (default, Mar 27 2019, 22:11:17) [GCC 7.3.0] :: Anaconda, Inc. on linux Type "help", "copyright", "credits" or "license" for more information. >>>
明顯不是ROS需要的Python版本,ROS的Python版本為2.7。印度小哥的思路是anaconda可以建立Python2.7的環境,然后在那個環境中運行ROS。
$ conda create -n ros_env python=2.7 anaconda
建立名為ros_env的環境之后,需要安裝許多插件,安裝完成后,加載環境:
source activate ros_env
這時,在查看python的版本變為:
Python 2.7.16 |Anaconda, Inc.| (default, Aug 22 2019, 16:00:36) [GCC 7.3.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
這時import rospy會報錯,原因是由於rospkg沒有安裝,在ros_env的環境下安裝rospkg
$ pip install -U rospkg
安裝成功后,import rospy 以及 import rospkg都沒有問題了。
總結:這個方法很好用,就是在使用ros之前需要進入ros_env環境,相對比較方便。當然,也可以將source activate ros_env加入到.bashrc,這樣做不推薦,因為這樣做默認的環境變為python2.7的版本,如果想要python3以上的版本會有問題。
2. 在ROS的github上的方法
網址:https://github.com/ros/ros/issues/149
這個方法很簡單,屏蔽掉.bashrc中關於anaconda的設置,每次使用anaconda時,在終端中輸入
$ export PATH="/home/"user"/anaconda3/bin:$PATH"
然后就可以使用anaconda。
$ anaconda-navigator
3. 在medium上找到的方法
該方法與上面的方法效果完全一樣,屏蔽掉.bashrc中關於anaconda的設置,在.bashrc中加入
$ alias condaenv=”export PATH=”/home/"user"/anaconda3/bin:$PATH””
想要運行anaconda,就直接運行
$ condaenv
如果還有更好的方法,希望大家留言。