Anaconda|AnacondaとROSの共存問題


  • 問題説明
  • 問題分析
  • 解決方法
  • 初歩的な解決
  • 徹底的に解決

  • 問題の説明
    Anacondaのインストール後
    $ cd ~/catkin_ws
    $ catkin_make

    コンパイルエラー
    ImportError: No module named rospkg

    もんだいぶんせき
    最初はrospkgにエラーがあったと思い、以下のコマンドでエラーを検出しました.
    $ sudo apt-get install python-rospkg

    rospkgパッケージが最新バージョンに更新されていることが判明した場合、ROS自体のPythonパッケージでエラーが発生する可能性はほぼ排除されます.
    また、Anacondaをインストールするときに
    Do you wish the installer to prepend the Anaconda2 install location to PATH in your/home/tingting/.bashrc ? [yes|no]
    ここでは環境変数に何か変なものを加えてROSに影響する環境変数であるはずである.理解を探るために、環境変数を表示します.
    $ echo $PATH

    結果は次のとおりです.
    /home/hanxy/anaconda2/bin:/opt/ros/indigo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

    表示~/.bashrcファイル
    $ sudo gedit ~/.bashrc

    ファイルの末尾にAnacondaが追加した$PATH変数があることを発見
    $ export PATH=/home/hanxy/anaconda2/bin:$PATH

    解決策
    初歩的な解決
    簡単に解決するには、上記の環境変数をインポートした文をコメントしますが、同時にAnaconda内のパケットが正常に使用できないため、端末を開くたびに上記の文を入力して、Anacondaの環境変数を取得する必要があります.しかし、それでもAnacondaではROSパッケージを使用できず、ROSでもAnacondaパッケージを使用できないことは大きな損失となります.
    徹底的に解決する.
    AnacondaにROSパッケージをインポートできないのは、結局、対応するパッケージがないためです.
    $ conda install setuptools
    $ pip install -U rosdep rosinstall_generator wstool rosinstall six vcstools
    $ hanxy@hanxy-Ubuntu:~$ python
    Python 2.7.14 |Anaconda, Inc.| (default, Oct 16 2017, 17:29:19) 
    [GCC 7.2.0] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import tensorflow
    >>> import rospkg
    >>> 

    tensorflowとrospkgの同時導入に成功~