MacにROS2をインストールして、デモ実行で大量のエラーが表示されるときの対処法

# 1. はじめに

MacにROS2をインストールする際に、インストールは特に問題なく終わったのですが、デモを実行した時に大量のエラーが出て動かなかった時に対処した方法を備忘録として残しておきます。

# 2. 環境

Mac : Mojave 10.14.6
ROS2 : Dashing

# 3. インストール

インストールはROS2の[インストールドキュメント](https://index.ros.org/doc/ros2/Installation/Dashing/OSX-Install-Binary/)の通りに行いました。

# 4. 症状

インストール後の動作確認として以下のコマンドを実行したところで、エラーが発生しました。

``` sh:実行コマンド
$ ros2 run demo_nodes_cpp talker
```

```sh:エラーメッセージの一部
The C extension '/Users/"ユーザー名"/ros2_install/ros2-osx/lib/python3.7/site-packages/rclpy/_rclpy.cpython-37m-darwin.so' fai
led to be imported while being present on the system. Please refer to 'https://index.ros.org/doc/ros2/Troubleshooting/#im
port-failing-even-with-library-present-on-the-system' for possible solutions                                             
dyld: Library not loaded: /usr/local/opt/poco/lib/libPocoFoundation.63.dylib                                             
  Referenced from: /Users/"ユーザー名"/ros2_install/ros2-osx/lib/librosidl_typesupport_c.dylib                                
  Reason: image not found 
```

「/usr/local/opt/poco/lib/libPocoFoundation.63.dylib」がロードできないと言われているので、確認してみると、libPocoFoundation.63.dylibはなく、「/usr/local/opt/poco/lib/libPocoFoundation.64.dylib」がありました。
とりあえず以下のコマンドでシンボリックリンクを貼ったところ怪しいメッセージは出つつもデモが動作しました。

```sh:シンボリックを貼るコマンド
$ ln -s libPocoFoundation.64.dylib libPocoFoundation.63.dylib
```

```sh:再度デモを実行した時の状態
$ ros2 run demo_nodes_cpp talker                                                                                    
Failed to load entry point 'test': No module named 'yaml'                                                                
Failed to load entry point 'launch': No module named 'yaml'                                                              
Failed to load entry point 'send_goal': No module named 'yaml'                                                           
Failed to load entry point 'list': No module named 'yaml'                                                                
Failed to load entry point 'load': No module named 'yaml'                                                                
Failed to load entry point 'standalone': No module named 'yaml'                                                          
Failed to load entry point 'types': No module named 'yaml'                                                               
Failed to load entry point 'unload': No module named 'yaml'                                                              
Failed to load entry point 'delete': No module named 'yaml'                                                              
Failed to load entry point 'get': No module named 'yaml'                                                                 
Failed to load entry point 'set': No module named 'yaml'                                                                 
Failed to load entry point 'create': No module named 'catkin_pkg'                                                        
Failed to load entry point 'create_key': No module named 'lxml'                                                          
Failed to load entry point 'create_keystore': No module named 'lxml'                                                     
Failed to load entry point 'create_permission': No module named 'lxml'                                                   
Failed to load entry point 'distribute_key': No module named 'lxml'                                                      
Failed to load entry point 'generate_artifacts': No module named 'lxml'                                                  
Failed to load entry point 'generate_policy': No module named 'lxml'                                                     
Failed to load entry point 'list_keys': No module named 'lxml'                                                           
Failed to load entry point 'call': No module named 'yaml'                                                                
Failed to load entry point 'echo': No module named 'yaml'                                                                
Failed to load entry point 'pub': No module named 'yaml'                                                                 
[INFO] [talker]: Publishing: 'Hello World: 1'                                                                            
[INFO] [talker]: Publishing: 'Hello World: 2'                                                                            
[INFO] [talker]: Publishing: 'Hello World: 3'   
```

完全な対症療法でとりあえず動きましたが、原因はなんなのか良くわかっていないので、気が向いたら調べてみようと思います。Ubuntu18.04ではサクッと動いたのに・・・。