Skip to content

Commit 2cec6d2

Browse files
committed
9.13.2a0; support maci64 on maca64 under Rosetta
1 parent 0b4f01b commit 2cec6d2

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ The MATLAB® Engine API for Python® provides a package to integrate MATLA
2121
MATLAB Engine API for Python can be installed directly from the Python Package Index.
2222
<!-- MUST_BE_UPDATED_EACH_RELEASE (Search repo for this string) -->
2323
```bash
24-
$ python -m pip install matlabengine==9.13.2
24+
$ python -m pip install matlabengine==9.13.2a0
2525
```
2626

2727

@@ -46,7 +46,7 @@ setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:<matlabroot>/bin/glnxa64
4646
MATLAB Engine API for Python can be installed directly from the Python Package Index.
4747
<!-- MUST_BE_UPDATED_EACH_RELEASE (Search repo for this string) -->
4848
```bash
49-
$ python -m pip install matlabengine==9.13.2
49+
$ python -m pip install matlabengine==9.13.2a0
5050
```
5151

5252
### macOS
@@ -70,7 +70,7 @@ setenv DYLD_LIBRARY_PATH ${DYLD_LIBRARY_PATH}:<matlabroot>/bin/maci64
7070
MATLAB Engine API for Python can be installed directly from the Python Package Index.
7171
<!-- MUST_BE_UPDATED_EACH_RELEASE (Search repo for this string) -->
7272
```bash
73-
$ python -m pip install matlabengine==9.13.2
73+
$ python -m pip install matlabengine==9.13.2a0
7474
```
7575

7676
---

setup.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class _MatlabFinder(build_py):
2424
MATLAB_REL = 'R2022b'
2525

2626
# MUST_BE_UPDATED_EACH_RELEASE (Search repo for this string)
27-
MATLAB_VER = '9.13.2'
27+
MATLAB_VER = '9.13.2a0'
2828

2929
# MUST_BE_UPDATED_EACH_RELEASE (Search repo for this string)
3030
SUPPORTED_PYTHON_VERSIONS = set(['3.8', '3.9', '3.10'])
@@ -82,6 +82,8 @@ def set_platform_and_arch(self):
8282
self.arch = 'glnxa64'
8383
elif self.platform == 'Darwin':
8484
if platform.mac_ver()[-1] == 'arm64':
85+
# We will change this value later in the script if we find that the user is
86+
# using an installation of MATLAB built for maci64, to be run under Rosetta.
8587
self.arch = 'maca64'
8688
else:
8789
self.arch = 'maci64'
@@ -234,6 +236,10 @@ def search_path_for_directory_unix(self):
234236
dir_to_find = os.path.join('bin', self.arch)
235237
# directory could end with slashes
236238
endings = [dir_to_find, dir_to_find + os.sep]
239+
if self.arch == 'maca64':
240+
addl_dir_to_find = 'maci64'
241+
endings.append(addl_dir_to_find)
242+
endings.append(addl_dir_to_find + os.sep)
237243

238244
matlab_root = ''
239245
dir_idx = 0
@@ -245,6 +251,13 @@ def search_path_for_directory_unix(self):
245251
if path.endswith(ending):
246252
# _get_matlab_root_from_unix_bin will return an empty string if MATLAB is not found.
247253
# Non-empty string (MATLAB found) will break both loops.
254+
if self.arch == 'maca64' and ending[:6] == 'maci64':
255+
# We found a maci64 installation. Use it (under Rosetta) rather than maca64.
256+
# This means that if the user wants to use maci64 on a maca64 machine,
257+
# they need to make sure that the maci64 installation is in the default
258+
# location if there is one, or if not, that it is earlier on the path than
259+
# any maca64 installations.
260+
self.arch = 'maci64'
248261
matlab_root = self._get_matlab_root_from_unix_bin(path)
249262
ending_idx += 1
250263
dir_idx += 1
@@ -308,7 +321,7 @@ def run(self):
308321
setup(
309322
name="matlabengine",
310323
# MUST_BE_UPDATED_EACH_RELEASE (Search repo for this string)
311-
version="9.13.2",
324+
version="9.13.2a0",
312325
description='A module to call MATLAB from Python',
313326
author='MathWorks',
314327
license="MathWorks XSLA License",

0 commit comments

Comments
 (0)