필터 지우기
필터 지우기

rosinit failed in Matlab 2022a, MacOS Apple Silicon

조회 수: 8 (최근 30일)
Sheng Yang
Sheng Yang 2022년 3월 21일
댓글: Sk Shaon 2023년 2월 10일
pyenv get
ans =
PythonEnvironment - 属性:
Version: "3.9"
Executable: "/opt/homebrew/Caskroom/miniforge/base/envs/matlab_ros/bin/python"
Library: "/opt/homebrew/Caskroom/miniforge/base/envs/matlab_ros/lib/libpython3.9.dylib"
Home: "/opt/homebrew/Caskroom/miniforge/base/envs/matlab_ros"
Status: NotLoaded
ExecutionMode: InProcess
and rosinit get
Launching ROS Core...
Adding required Python packages to virtual environment..Done.
Could not install the required Python packages. System error message: Looking in links:
/Applications/MATLAB_R2022a.app/sys/ros1/share/python
Processing /Applications/MATLAB_R2022a.app/sys/ros1/share/python/catkin_pkg-0.4.23-py3-none-any.whl
Processing /Applications/MATLAB_R2022a.app/sys/ros1/share/python/empy-3.3.4.tar.gz
Processing
/Applications/MATLAB_R2022a.app/sys/ros1/share/python/docutils-0.17.1-py2.py3-none-any.whl
Processing
/Applications/MATLAB_R2022a.app/sys/ros1/share/python/pyparsing-2.4.7-py2.py3-none-any.whl
Processing
/Applications/MATLAB_R2022a.app/sys/ros1/share/python/python_dateutil-2.8.1-py2.py3-none-any.whl
[31mERROR: Could not find a version that satisfies the requirement pyyaml (from versions: none)[0m
[31mERROR: No matching distribution found for pyyaml[0m
. Use pyenv function to set the path to the Python executable and retry the command.
/opt/homebrew/Caskroom/miniforge/base/envs/matlab_ros/bin/python -m pip install pyyaml and /opt/homebrew/Caskroom/miniforge/base/envs/matlab_ros/bin/python -m pip install pyyaml==5.4.1 make no sense.
  댓글 수: 6
Cam Salzberger
Cam Salzberger 2022년 3월 24일
Hmm, I've not seen this exact issue before. One thing that has helped other similar issues is to upgrade pip and setuptools in the base Python installation. So in a terminal outside of MATLAB run:
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade setuptools
After doing that, you can force recreation of the virtual environment in MATLAB by running this from the Command Window. Make sure pyenv is set the same way first (to the base executable).
ros.internal.createOrGetLocalPython(true)
-Cam
Sheng Yang
Sheng Yang 2022년 3월 25일
편집: Sheng Yang 2022년 3월 25일
Thank you for the patient response. Unfortunately, nothing changed.
In system terminal:
~ python3 -m pip install --upgrade pip
DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
Requirement already satisfied: pip in /opt/homebrew/lib/python3.9/site-packages (22.0.4)
DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
~ python3 -m pip install --upgrade setuptools
DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
Requirement already satisfied: setuptools in /opt/homebrew/lib/python3.9/site-packages (61.0.0)
DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
In matlab:
>> pyenv
ans =
PythonEnvironment - 属性:
Version: "3.9"
Executable: "/opt/homebrew/opt/python@3.9/bin/python3.9"
Library: "/opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/lib/libpython3.9.dylib"
Home: "/opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9"
Status: NotLoaded
ExecutionMode: InProcess
>> ros.internal.createOrGetLocalPython(true)
Removing previous version of Python virtual environment..Done.
Creating a Python virtual environment...Done.
Adding required Python packages to virtual environment...Done.
错误使用 ros.internal.createOrGetLocalPython
Could not install the required Python packages. System error message: Looking in links:
/Applications/MATLAB_R2022a.app/sys/ros1/share/python
Processing /Applications/MATLAB_R2022a.app/sys/ros1/share/python/catkin_pkg-0.4.23-py3-none-any.whl
Processing /Applications/MATLAB_R2022a.app/sys/ros1/share/python/empy-3.3.4.tar.gz
Processing /Applications/MATLAB_R2022a.app/sys/ros1/share/python/docutils-0.17.1-py2.py3-none-any.whl
Processing /Applications/MATLAB_R2022a.app/sys/ros1/share/python/pyparsing-2.4.7-py2.py3-none-any.whl
Processing
/Applications/MATLAB_R2022a.app/sys/ros1/share/python/python_dateutil-2.8.1-py2.py3-none-any.whl
[31mERROR: Could not find a version that satisfies the requirement pyyaml (from versions: none)[0m
[31mERROR: No matching distribution found for pyyaml[0m
. Use pyenv function to set the path to the Python executable and retry the command.
So strange!

댓글을 달려면 로그인하십시오.

채택된 답변

Sheng Yang
Sheng Yang 2022년 3월 25일
편집: Sheng Yang 2022년 3월 25일
I did some surveys on createOrGetLocalPython.m and wheels in /Applications/MATLAB_R2022a.app/sys/ros1/share/python and found this problem is associated with apple silicon. In /Applications/MATLAB_R2022a.app/sys/ros1/share/python, there are three PyYAML wheels:
PyYAML-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl
PyYAML-5.4.1-cp39-cp39-manylinux1_x86_64.whl
PyYAML-5.4.1-cp39-cp39-win_amd64.whl
None of them is suitable for macos (apple silicon). (`~/.matlab/R2022a/ros1/maci64/venv/bin/python` is the venv created by ros.internal.createOrGetLocalPython)
python ~/.matlab/R2022a/ros1/maci64/venv/bin/python -m pip install PyYAML-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl
ERROR: PyYAML-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl is not a supported wheel on this platform.
However, you can install PyYAML==5.4.1 by pip directly. The current solution for this problem (only in apple silicon) should be:
Step 1, execute these commands in matlab (you will get error infomation, ignore them)
pyenv('Version', '/opt/homebrew/bin/python3')
ros.internal.createOrGetLocalPython(true)
Step 2, execute the command in system terminal
~/.matlab/R2022a/ros1/maci64/venv/bin/python -m pip install pyyaml==5.4.1
Step 3, execute these commands in matlab
ros.internal.createOrGetLocalPython()
rosinit
@Cam Salzberger Thank you for your patient replies. Maybe an update is necessary for Matlab 2022a?
  댓글 수: 4
Karthik Reddy Vennapureddy
Karthik Reddy Vennapureddy 2022년 4월 4일
Hi Yang,
Could you let us know whether the python in '/opt/homebrew/opt/python@3.9/bin/python3.9' is arm64 or x86_64 version. To know which architecture of python you are using, execute the following command:
!file /opt/homebrew/opt/python@3.9/bin/python3.9
The error seems to be occurring with the native python (arm64). You could install a intel or universal python as alternative from the official python 3.9.10 release for macos: https://www.python.org/downloads/macos/.
- Karthik Reddy
Sheng Yang
Sheng Yang 2022년 4월 4일
Indeed, it is the native python installed by the homebrew:
/opt/homebrew/opt/python@3.9/bin/python3.9: Mach-O 64-bit executable arm64

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Kenneth Hoffmann
Kenneth Hoffmann 2022년 8월 3일
Hi! Is MATLAB ROS stable on Mac Silicon? I am considering upgrading. Thanks!
  댓글 수: 1
Sk Shaon
Sk Shaon 2023년 2월 10일
No, Still has the same Issue
Unable to install the required Python packages. System error message:
Looking in links: c:\Program Files\MATLAB\R2022b\sys\ros1\share\python
Processing c:\program files\matlab\r2022b\sys\ros1\share\python\catkin_pkg-0.4.23-py3-none-any.whl
Processing c:\program files\matlab\r2022b\sys\ros1\share\python\empy-3.3.4.tar.gz
Processing c:\program files\matlab\r2022b\sys\ros1\share\python\docutils-0.17.1-py2.py3-none-any.whl
Processing c:\program files\matlab\r2022b\sys\ros1\share\python\pyparsing-2.4.7-py2.py3-none-any.whl
Processing c:\program files\matlab\r2022b\sys\ros1\share\python\python_dateutil-2.8.1-py2.py3-none-any.whl
ERROR: Could not find a version that satisfies the requirement pyyaml (from versions: none)
ERROR: No matching distribution found for pyyaml
.
Use ROS Toolbox preferences to create a Python virtual environment.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Call Python from MATLAB에 대해 자세히 알아보기

태그

제품


릴리스

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by