wstool failed to initiate
I'm following this instruction trying to install ROS on my mac http://wiki.ros.org/kinetic/Installation/OSX/Homebrew/Source and I've got environment variables both set for python2.7 and python 3.9 by calling:
$ mkdir -p ~/Library/Python/2.7/lib/python/site-packages
$ echo "$(brew --prefix)/lib/python2.7/site-packages" >> ~/Library/Python/2.7/lib/python/site-packages/homebrew.pth
$ mkdir -p ~/Library/Python/3.9/lib/python/site-packages
$ echo "$(brew --prefix)/lib/python3.9/site-packages" >> ~/Library/Python/3.9/lib/python/site-packages/homebrew.pth
I have successfully generated the install file by calling:
rosinstall_generator desktop --rosdistro kinetic --deps --wet-only --tar > kinetic-desktop-wet.rosinstall
but when I try to init the install file using wstool it is giving me the following errors:
Using initial elements from: kinetic-desktop-wet.rosinstall
/usr/local/lib/python3.9/site-packages/wstool/config_yaml.py:74: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
yamldata = yaml.load(stream)
Writing /Users/nelldu/ros_catkin_ws/src/.rosinstall
Traceback (most recent call last):
File "/usr/local/bin/wstool", line 62, in <module>
sys.exit(wstool.wstool_cli.wstool_main(sys.argv))
File "/usr/local/lib/python3.9/site-packages/wstool/wstool_cli.py", line 174, in wstool_main
return commands[command](args)
File "/usr/local/lib/python3.9/site-packages/wstool/multiproject_cli.py", line 475, in cmd_init
install_success = multiproject_cmd.cmd_install_or_update(
File "/usr/local/lib/python3.9/site-packages/wstool/multiproject_cmd.py", line 414, in cmd_install_or_update
work.run()
File "/usr/local/lib/python3.9/site-packages/wstool/common.py", line 352, in run
self.threads[i].start()
File "/usr/local/Cellar/python@3.9/3.9.7_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/process.py", line 121, in start
self._popen = self._Popen(self)
File "/usr/local/Cellar/python@3.9/3.9.7_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/context.py", line 224, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "/usr/local/Cellar/python@3.9/3.9.7_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/context.py", line 284, in _Popen
return Popen(process_obj)
File "/usr/local/Cellar/python@3.9/3.9.7_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/popen_spawn_posix.py", line 32, in __init__
super().__init__(process_obj)
File "/usr/local/Cellar/python@3.9/3.9.7_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/popen_fork.py", line 19, in __init__
self._launch(process_obj)
File "/usr/local/Cellar/python@3.9/3.9.7_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/popen_spawn_posix.py", line 47, in _launch
reduction.dump(process_obj, fp)
File "/usr/local/Cellar/python@3.9/3.9.7_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/reduction.py", line 60, in dump
ForkingPickler(file, protocol).dump(obj)
AttributeError: Can't pickle local object 'cmd_install_or_update.<locals>.Installer'
Would like to know is this a yaml issue that I have to update my yaml or something with python or wstool. Any suggestion is appreciated.
Asked by tortoise_catfish on 2021-10-16 04:50:19 UTC
Answers
By using Python 2 and Python 3 at the same time, there is a conflict with pickle.
Optional keyword arguments are fix_imports, encoding and errors, which are used to control compatibility support for pickle stream generated by Python 2. If fix_imports is true, pickle will try to map the old Python 2 names to the new names used in Python 3. The encoding and errors tell pickle how to decode 8-bit string instances pickled by Python 2; these default to ‘ASCII’ and ‘strict’, respectively. The encoding can be ‘bytes’ to read these 8-bit string instances as bytes objects.
Check this stackoverflow discussion as this may not be related to wstool
but how it's being used.
Asked by osilva on 2021-10-19 08:23:37 UTC
Comments
I have already made sure that I followed the steps with Python 3.9 as well though the instructions are written for 2.7 and haven't been updated for almost a year.
Fwiw it says kinetic did not work on mac os I'm currently installing melodic with vcs and it seems to be going alright though I have to constantly solve for dependency issues and CMakeLists.txt files.
Asked by tortoise_catfish on 2021-10-19 10:28:27 UTC
Hope that solves the issues. Cheers
Asked by osilva on 2021-10-19 20:12:09 UTC
Comments