Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

import xmlsec fails on python 3.8/3.9, macOS Big Sur 11.0.1 and M1 chip #163

Open
tesh-raichandani opened this issue Jan 22, 2021 · 33 comments

Comments

@tesh-raichandani
Copy link

tesh-raichandani commented Jan 22, 2021

xmlsec version: 1.3.9
libxmlsec1 version: 1.2.31
libxml2 version: 2.9.10_2
(venv) tesh$ pkg-config --cflags xmlsec1
-D__XMLSEC_FUNCTION__=__func__ -DXMLSEC_NO_SIZE_T -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_GOST2012=1 -DXMLSEC_NO_CRYPTO_DYNAMIC_LOADING=1 -DXMLSEC_CRYPTO_OPENSSL=1 -I/opt/homebrew/Cellar/libxmlsec1/1.2.31/include/xmlsec1 -I/opt/homebrew/opt/[email protected]/include -I/opt/homebrew/opt/[email protected]/include/openssl

It installs fine but fails when importing.

In [1]: import xmlsec
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-43dd76db73dd> in <module>
----> 1 import xmlsec

ImportError: dlopen(/Users/tesh/rescale/venv3.9/lib/python3.9/site-packages/xmlsec.cpython-39-darwin.so, 2): Symbol not found: _xmlSecDSigNs
  Referenced from: /Users/tesh/rescale/venv3.9/lib/python3.9/site-packages/xmlsec.cpython-39-darwin.so
  Expected in: flat namespace
 in /Users/tesh/rescale/venv3.9/lib/python3.9/site-packages/xmlsec.cpython-39-darwin.so

Python 3.8 and 3.9

$ file $(which python)
/Users/tesh/rescale/venv/bin/python: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64]
/Users/tesh/rescale/venv/bin/python (for architecture x86_64):	Mach-O 64-bit executable x86_64
/Users/tesh/rescale/venv/bin/python (for architecture arm64):	Mach-O 64-bit executable arm64
$ file $(which python)
/Users/tesh/rescale/venv3.9/bin/python: Mach-O 64-bit executable x86_64
$ otool -L /Users/tesh/rescale/venv3.9/lib/python3.9/site-packages/xmlsec.cpython-39-darwin.so
/Users/tesh/rescale/venv3.9/lib/python3.9/site-packages/xmlsec.cpython-39-darwin.so:
	/usr/lib/libxslt.1.dylib (compatibility version 3.0.0, current version 3.26.0)
	/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.60.1)
	/usr/lib/libicucore.A.dylib (compatibility version 1.0.0, current version 66.1.0)

Will really appreciate any help.

@hoefling
Copy link
Member

Hi @hitesh-raichandani, it looks like you have a Mac with the new M1 chip. Unfortunately, I don't have access to this hardware yet and Github Actions doesn't offer anything either, see actions/runner-images#2187. I'm thus unable to play with building universal dists right now. Once my company sets up the infrastructure, I will come back to this, or maybe someone else will shed some light on it.

@tesh-raichandani
Copy link
Author

Thanks for the update @hoefling, added package versions to the issue details for clarity.

@hoefling
Copy link
Member

@hitesh-raichandani I still can't reproduce the issue due to missing hardware, but maybe you could attach the build log in the meantime? Simply pip install xmlsec -vvv --force-reinstall --no-cache-dir and drop the full output in the comments.

@tesh-raichandani
Copy link
Author

@hoefling, the attached file has build logs. Thanks!

xmlsec-build-log.txt

@px0
Copy link

px0 commented Apr 3, 2021

I'm running into the same issue except I am running python3.7 in the Rosetta2 compatibility mode

@milannister
Copy link

Same issue here with python 3.8 and M1.

@aldenjenkins
Copy link

Same issue found here. Any fix yet?

@hoefling
Copy link
Member

I can't investigate any issues with M1 since I don't own the necessary hardware. A colleague of mine could successfully compile xmlsec from current master though on his MacBook Pro M1, using the brewed libraries. The attached xmlsec-apple-m1.zip contains both wheels for xmlsec and lxml, which you can try out.

Beware though, that lxml seems to continue having issues with the import order, resulting in XMLSyntaxErrors if reusing the default parser instance; see related #84, #96 and the issues in lxml's tracker: 1880251, 1887848. Failing example:

import pathlib
pathlib.Path("doc.xml").write_text("<spam>eggs</spam>")

import xmlsec
from lxml import etree

etree.parse("doc.xml")
etree.parse("doc.xml")

@Gyanesha
Copy link

I too have found this very same issue, any fix for this ?

@andribergs
Copy link

I get the same issue with python 3.9 on a M1 chip, any updates on this?

@milannister
Copy link

Hi there, are there any plans on progressing on this issue anytime soon? I understand the constraints, and would just like to get some feedback so that we can plan for alternatives if needed.

@mrmiguu
Copy link

mrmiguu commented Aug 11, 2021

Howdy! Any updates on the progression for this issue? I understand the scenario and would like to hear back regarding workarounds.

Thanks

@spacewaffle
Copy link

Still having this issue on python 3.9 and M1. Any updates?

@hoefling
Copy link
Member

hoefling commented Sep 8, 2021

There's nothing to report. The company I worked at didn't manage to provide the M1 hardware and I changed the job recently, so no ETA at all. Feel free to give a 👍 on actions/runner-images#2187, as accessing the M1 hardware via CI jobs will be most likely the only way for me.

@armenzg
Copy link

armenzg commented Sep 15, 2021

It installed on my M1 machine.
You will need to build the wheel, thus, you will need to install libxmlsec1 and pkg-config.
You might need to brew update and reinstall those packages.
I have been able to builds the wheels for these versions: 1.3.10 to 1.3.12.

Anyone trying this issue also make sure to only try with Python versions 3.8.10 and greater since that's when official support was added.

❯ pip install xmlsec==1.3.12 --no-cache-dir
Collecting xmlsec==1.3.12
  Downloading xmlsec-1.3.12.tar.gz (64 kB)
     |████████████████████████████████| 64 kB 3.0 MB/s
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
    Preparing wheel metadata ... done
Requirement already satisfied: lxml>=3.8 in ./.venv/lib/python3.8/site-packages (from xmlsec==1.3.12) (4.6.3)
Building wheels for collected packages: xmlsec
  Building wheel for xmlsec (PEP 517) ... done
  Created wheel for xmlsec: filename=xmlsec-1.3.12-cp38-cp38-macosx_11_0_arm64.whl size=48084 sha256=74d628b8edf4a81bde35e4a0863e2c1d2e83a7f897c0c555c1612e6b25fb1ad4
  Stored in directory: /private/var/folders/j1/d109sd4n55qbk5ty8gzq5jgm0000gn/T/pip-ephem-wheel-cache-rt5nmgzu/wheels/2c/99/a3/98bcb24586c778eb35e23e30af30fbf1c34a0a9ed85e18576a
Successfully built xmlsec
Installing collected packages: xmlsec
Successfully installed xmlsec-1.3.12

❯ pkg-config --cflags xmlsec1
-D__XMLSEC_FUNCTION__=__func__ -DXMLSEC_NO_SIZE_T -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_GOST2012=1 -DXMLSEC_NO_CRYPTO_DYNAMIC_LOADING=1 -DXMLSEC_CRYPTO_OPENSSL=1 -I/opt/homebrew/Cellar/libxmlsec1/1.2.32/include/xmlsec1 -I/opt/homebrew/opt/[email protected]/include -I/opt/homebrew/opt/[email protected]/include/openssl

❯ python -c "import xmlsec"

❯ file $(which python)
/Users/armenzg/code/sentry/.venv/bin/python: Mach-O 64-bit executable arm64

❯ otool -L .venv/lib/python3.8/site-packages/xmlsec.cpython-38-darwin.so
.venv/lib/python3.8/site-packages/xmlsec.cpython-38-darwin.so:
	/opt/homebrew/opt/libxmlsec1/lib/libxmlsec1-openssl.1.dylib (compatibility version 4.0.0, current version 4.32.0)
	/opt/homebrew/opt/libxmlsec1/lib/libxmlsec1.1.dylib (compatibility version 4.0.0, current version 4.32.0)
	/opt/homebrew/opt/[email protected]/lib/libcrypto.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)
	/usr/lib/libxslt.1.dylib (compatibility version 3.0.0, current version 3.26.0)
	/usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.9.0)
	/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.100.5)
	/usr/lib/libicucore.A.dylib (compatibility version 1.0.0, current version 66.1.0)

❯ brew info libxmlsec1
libxmlsec1: stable 1.2.32 (bottled)
XML security library
https://www.aleksey.com/xmlsec/
/opt/homebrew/Cellar/libxmlsec1/1.2.32 (220 files, 6.2MB) *
  Poured from bottle on 2021-05-17 at 08:58:46
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/libxmlsec1.rb
License: MIT
==> Dependencies
Build: pkg-config ✔
Required: gnutls ✔, libgcrypt ✘, libxml2 ✔, [email protected] ✔
==> Requirements
Build: Xcode ✘

❯ brew info pkg-config
pkg-config: stable 0.29.2 (bottled)
Manage compile and link flags for libraries
https://freedesktop.org/wiki/Software/pkg-config/
/opt/homebrew/Cellar/pkg-config/0.29.2_3 (11 files, 677.1KB) *
  Poured from bottle on 2021-05-17 at 08:53:19
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/pkg-config.rb
License: GPL-2.0-or-later

@AddisonDunn
Copy link

Using xmlsec==1.3.12 with python 3.8.12 installed via rosetta-enabled homebrew ([email protected]) worked for me. Thanks @armenzg.

@armenzg
Copy link

armenzg commented Sep 17, 2021

@AddisonDunn you're welcome! How do you use rosetta with Python? I'm curious.

@AddisonDunn
Copy link

AddisonDunn commented Sep 20, 2021

When using the Python 3.8.10 "universal" version for Mac downloaded from Python.org I had no luck, but using @python3.8 (version 3.8.12) installed via the rosetta-enabled homebrew I did.

arch -x86_64 /usr/local/bin/brew install @python3.8

@spacewaffle
Copy link

spacewaffle commented Sep 30, 2021

I got my system working by following @armenzg's suggestion. I had to install python 3.9 via rosetta homebrew, upgrade to xmlsec 1.3.12, install libxmlsec1 and pkg-config. Thanks so much!

@vpol
Copy link

vpol commented Jan 7, 2022

Hi. Unfortunately solution provided by @armenzg does not work for me on Mac OS X Monerey (12.1)

> pip install xmlsec==1.3.12 --no-cache-dir
Collecting xmlsec==1.3.12
  Downloading xmlsec-1.3.12.tar.gz (64 kB)
     |████████████████████████████████| 64 kB 2.9 MB/s            
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Collecting lxml>=3.8
  Downloading lxml-4.7.1.tar.gz (3.2 MB)
     |████████████████████████████████| 3.2 MB 7.0 MB/s            
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: xmlsec, lxml
  Building wheel for xmlsec (pyproject.toml) ... done
  Created wheel for xmlsec: filename=xmlsec-1.3.12-cp38-cp38-macosx_11_0_arm64.whl size=48043 sha256=433e9da210433b5af8cf16e8a563ddd8f370e699a2fc4df18eea7e55b1f2332e
  Stored in directory: /private/var/folders/5b/hykrf_4x6177k8kgq_jdnh9r0000gn/T/pip-ephem-wheel-cache-cul2b7uc/wheels/2c/99/a3/98bcb24586c778eb35e23e30af30fbf1c34a0a9ed85e18576a
  Building wheel for lxml (setup.py) ... done
  Created wheel for lxml: filename=lxml-4.7.1-cp38-cp38-macosx_11_0_arm64.whl size=1482686 sha256=3994d6749dcd214e234a5f4d2640a561c8722422598ae0afe64d93970bfca934
  Stored in directory: /private/var/folders/5b/hykrf_4x6177k8kgq_jdnh9r0000gn/T/pip-ephem-wheel-cache-cul2b7uc/wheels/c7/d8/ac/9c62a8804498b75b652f0cfbe020c93ae3f7265a9bbb40cee9
Successfully built xmlsec lxml
Installing collected packages: lxml, xmlsec
Successfully installed lxml-4.7.1 xmlsec-1.3.12
> pkg-config --cflags xmlsec1
-D__XMLSEC_FUNCTION__=__func__ -DXMLSEC_NO_SIZE_T -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_GOST2012=1 -DXMLSEC_NO_CRYPTO_DYNAMIC_LOADING=1 -DXMLSEC_CRYPTO_OPENSSL=1 -I/usr/local/Cellar/libxmlsec1/1.2.33/include/xmlsec1 -I/usr/local/opt/[email protected]/include -I/usr/local/opt/[email protected]/include/openssl
> otool -hVL /Users/vpol/.miniforge3/envs/open-source/lib/python3.8/site-packages/xmlsec.cpython-38-darwin.so:
/Users/vpol/.miniforge3/envs/open-source/lib/python3.8/site-packages/xmlsec.cpython-38-darwin.so:
Mach header
      magic  cputype cpusubtype  caps    filetype ncmds sizeofcmds      flags
MH_MAGIC_64    ARM64        ALL  0x00      BUNDLE    19       1768   NOUNDEFS DYLDLINK TWOLEVEL
        @rpath/libcrypto.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)
        time stamp 2 Thu Jan  1 01:00:02 1970
        /usr/lib/libxslt.1.dylib (compatibility version 3.0.0, current version 3.26.0)
        time stamp 2 Thu Jan  1 01:00:02 1970
        /usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.9.0)
        time stamp 2 Thu Jan  1 01:00:02 1970
        @rpath/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
        time stamp 2 Thu Jan  1 01:00:02 1970
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1311.0.0)
        time stamp 2 Thu Jan  1 01:00:02 1970
        /usr/lib/libicucore.A.dylib (compatibility version 1.0.0, current version 68.2.0)
        time stamp 2 Thu Jan  1 01:00:02 1970
> brew info libxmlsec1
libxmlsec1: stable 1.2.33 (bottled)
XML security library
https://www.aleksey.com/xmlsec/
/usr/local/Cellar/libxmlsec1/1.2.33 (220 files, 5.7MB) *
  Poured from bottle on 2022-01-04 at 12:04:21
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/libxmlsec1.rb
License: MIT
==> Dependencies
Build: pkg-config ✔
Required: gnutls ✔, libgcrypt ✔, libxml2 ✔, [email protected] ✔
==> Requirements
Build: Xcode ✔
==> Analytics
install: 3,264 (30 days), 14,244 (90 days), 46,834 (365 days)
install-on-request: 2,500 (30 days), 10,810 (90 days), 35,185 (365 days)
build-error: 0 (30 days)
> brew info pkg-config
pkg-config: stable 0.29.2 (bottled)
Manage compile and link flags for libraries
https://freedesktop.org/wiki/Software/pkg-config/
/usr/local/Cellar/pkg-config/0.29.2_3 (11 files, 623.7KB) *
  Poured from bottle on 2020-04-11 at 22:07:37
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/pkg-config.rb
License: GPL-2.0-or-later
==> Analytics
install: 179,346 (30 days), 581,711 (90 days), 2,396,573 (365 days)
install-on-request: 23,338 (30 days), 72,427 (90 days), 314,819 (365 days)
build-error: 169 (30 days)

> python
Python 3.8.12 | packaged by conda-forge | (default, Oct 12 2021, 21:21:17) 
[Clang 11.1.0 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pkgconfig
>>> config = pkgconfig.parse('xmlsec1-openssl')
>>> print(config['libraries'])
['xmlsec1-openssl', 'xmlsec1', 'crypto', 'xslt', 'xml2', 'z', 'pthread', 'icucore', 'm', 'xml2']
> sw_vers
ProductName:    macOS
ProductVersion: 12.1
BuildVersion:   21C52

> python -c "import xmlsec"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: dlopen(/Users/vpol/.miniforge3/envs/open-source/lib/python3.8/site-packages/xmlsec.cpython-38-darwin.so, 0x0002): symbol not found in flat namespace '_xmlSecDSigNs'

@vpol
Copy link

vpol commented Jan 13, 2022

In my further investigation I've discovered that when building manually it does not link with homebrew-provided libxmlsec1 libraries:

ld: warning: ignoring file /usr/local/Cellar/libxmlsec1/1.2.33/lib/libxmlsec1-openssl.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
ld: warning: ignoring file /usr/local/Cellar/libxmlsec1/1.2.33/lib/libxmlsec1.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
➜  ~ nm -gU /usr/local/Cellar/libxmlsec1/1.2.33/lib/libxmlsec1.1.dylib | grep xmlSecDSigNs
0000000000031bf0 S _xmlSecDSigNs

@subavicky
Copy link

@vpol I'm also facing the same issue (building for macOS-x86_64 but attempting to link with file built for macOS-arm64 xmlsec). Were you able to proceed further?

@itay-ishr-di
Copy link

Same issue here. Tried all options you had suggested, nothing worked.

@jma
Copy link

jma commented Feb 21, 2022

Any solution?

@vpol
Copy link

vpol commented Feb 21, 2022

@subavicky I'm working on a patch, but unfortunately can't provide ETA

@itay-ishr-di
Copy link

itay-ishr-di commented Feb 21, 2022

Solved it. The cause of this error was installing the psycopg2-binary, which was meant to solve a similar error of "Symbol not found: _PQbackendPID".
Here is what solved it for me:

  1. Remove any existing version of Homebrew for M1.
  2. Install Homebrew only using Rosetta2 Terminal and use the intel version (google it).
pip3 uninstall psycopg2
brew install libpq --build-from-source
export LDFLAGS="-L/opt/homebrew/opt/libpq/lib" # Add to .zshrc
pip3 install psycopg2 --no-cache-dir

After doing this, psycopg2 no longer caused any problems, and the xmlsec error went away, everything works perfectly.

@cadedaniel
Copy link

cadedaniel commented Feb 23, 2022

I encountered this and fixed it by installing python-xmlsec from source. You can follow the instructions in the README.md. When installing from wheel, the binary is not correctly linked (e.g. pkg-config shows correct link arguments but otools -L doesn't show xmlsec1.dylib). I am not sure why it silently fails. But when installed from source, the output binary is correctly linked.

I suspect the bug is due to mixing architectures. My Python is x86_64, my xmlsec1 and further dependencies are x86_64, but I'm running on an M1 mac. Once I've installed python-xmlsec from source, it can run on my Python x86_64 on my amd64 mac.

If I find the cause, I'll put up a PR.

@admackin
Copy link

admackin commented Mar 9, 2022

@cadedaniel did you install HEAD or 1.3.12?

@admackin
Copy link

admackin commented Mar 9, 2022

In my further investigation I've discovered that when building manually it does not link with homebrew-provided libxmlsec1 libraries:

ld: warning: ignoring file /usr/local/Cellar/libxmlsec1/1.2.33/lib/libxmlsec1-openssl.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
ld: warning: ignoring file /usr/local/Cellar/libxmlsec1/1.2.33/lib/libxmlsec1.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64

where did you see these ld warnings @vpol ? I presume I'm getting the same problem (otool -L against the built lib is not reporting xmlsec1.dylib) but I'd like to confirm. I've tried @cadedaniel 's workaround but it's not working for me

@owensj-basis
Copy link

owensj-basis commented Mar 23, 2022

In my further investigation I've discovered that when building manually it does not link with homebrew-provided libxmlsec1 libraries:

ld: warning: ignoring file /usr/local/Cellar/libxmlsec1/1.2.33/lib/libxmlsec1-openssl.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
ld: warning: ignoring file /usr/local/Cellar/libxmlsec1/1.2.33/lib/libxmlsec1.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64

where did you see these ld warnings @vpol ? I presume I'm getting the same problem (otool -L against the built lib is not reporting xmlsec1.dylib) but I'd like to confirm. I've tried @cadedaniel 's workaround but it's not working for me

You can see it if you do pip install -v --no-cache-dir xmlsec. I was able to solve this issue for one of my devs today by installing python, libxml2, libxmlsec1, and pkg-config with arch -x86_64 /usr/local/homebrew/bin/brew, and then adding the following values to ~/.zshrc:

export LDFLAGS="-L/usr/local/opt/libxml2/lib -L/usr/local/opt/libxmlsec1/lib"
export CPPFLAGS="-I/usr/local/opt/libxml2/include -I/usr/local/opt/libxmlsec1/include"

After that, we ran pip install -v --no-cache-dir xmlsec and we were able to use the package in python

We were actually having the opposite problem as #163 (comment) - we were trying to install xmlsec for x86_64 and it was looking for arm64 packages during the installation. If you're trying to install it for arm64, find out where the arm64 version of libxmlsec1 is with brew info libxmlsec1, and use that location for the LDFLAGS and CPPFLAGS

Also, we were still getting the ld warning for openssl after adding the LDFLAGS and CPPFLAGS to .zshrc - adding the relevant flags for libxmlsec1-openssl would probably fix that, but we stopped messing with things once it started working so I'm not sure

@MathiasKowoll
Copy link

I just installed on Mac OS without a problem my steps are:
everything worked for arm64 without issues.

brew install libxmlsec1
brew install pkg-config
pip install xmlsec

Btw Im running Ventura but should work on Monterrey also

@denkasyanov
Copy link

I had the same problem but the solutions above unfortunately didn't work in my case.

Without any hope I tried to manually install libxmlsec1===1.2.37 from brew and it seems to work (I believe I reverted all previous attempts to solve this).

I found the full solution here: #254 (comment)

Not sure if it was required, but I removed xmlsec from installed pip dependencies and installed it again after downgrading libxmlsec1.

Versions:
Homebrew 4.0.14
initially some latest libxmlsec1 via brew
Python 3.9.2 via pyenv
xmlsec==1.3.13 in requirements.txt
Mac OS Ventura 13.3.1

@pzelnip
Copy link

pzelnip commented May 16, 2023

I'm having the same issue. Doing:

pip install xmlsec==1.3.11

Fails with:

... a ton of output ...

      5 errors generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for xmlsec
Failed to build xmlsec
ERROR: Could not build wheels for xmlsec, which is required to install pyproject.toml-based projects

I've installed libxml2 libxmlsec1 pkg-config via brew. Tried multiple versions of Python (3.9.7 and 3.10.4, both installed by pyenv). OSX Monterey 12.6.5. M1 Macbook pro.

Homebrew versIon:

Homebrew 4.0.18
Homebrew/homebrew-core (git revision 47f47a10cbb; last commit 2023-04-21)
Homebrew/homebrew-cask (git revision b1c4c7ec40; last commit 2023-04-21)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests