概要
ROS 2のパッケージをcolcon buildでビルドした際に、以下のようなWarningが表示された際の原因や対処方法をメモします。
--- stderr: ******* /usr/lib/python3/dist-packages/setuptools/command/easy_install.py:158: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools. warnings.warn( /usr/lib/python3/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. warnings.warn(
環境
現象が発生した環境は以下の通りです。
- Ubuntu 22.04 LTS
- ROS 2 Humble
- Python 3.10.12
- setuptools 59.6.0
原因
Pythonのパッケージ管理ツールの一つであるeasy_installやsetup.pyを使用してのパッケージインストールが非推奨(deprecated)になったことに起因します。ROS 2のビルドシステムでsetup.pyを使ってインストールしていることが原因のように思われます。
以下が参考になりました。
https://answers.ros.org/question/396439/setuptoolsdeprecationwarning-setuppy-install-is-deprecated-use-build-and-pip-and-other-standards-based-tools/
SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. · Issue #382 · ament/ament_cmake
SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. shows u...
対処
以下の対処方法が挙げられます。(ROS 2 IronやJazzy以降で対応されている可能性がありますが未確認です)
setuptoolsのダウングレード
setuptoolsを58.2.00に以下のコマンドでダウングレードする方法です。
pip3 install setuptools==58.2.00
特定のWarningを抑制
setuptoolsをダウングレードする場合は、推奨しないという方もいらっしゃるようで、特定のワーニングを抑制する方法が良いかもしれません。PYTHONWARNINGS環境変数で抑制する方法です。
以下に記載がある記事を紹介します。
SetuptoolsDeprecationWarning in ros2 Humble
I was trying to follow this tutorial in the official documentation of ros2 Humble for Integrating launch files into ROS ...
コメント