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の同時導入に成功~