Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Receiving "error: xmlsec1 is not installed or not in path.", when pip installing xmlsec

I'm on MacOS 10.15.7 Catalina, and I am currently using Python 3.8.4, with Pip 21.1.1

For whatever reason, I keep getting an error when I try to run python -m pip install xmlsec

Error in text form:

➜ python -m pip install xmlsec 
Collecting xmlsec
  Using cached xmlsec-1.3.10.tar.gz (62 kB)
  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 /Users/rsheikh/.pyenv/versions/3.8.4/lib/python3.8/site-packages (from xmlsec) (4.6.3)
Building wheels for collected packages: xmlsec
  Building wheel for xmlsec (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: /Users/rsheikh/.pyenv/versions/3.8.4/bin/python /Users/rsheikh/.pyenv/versions/3.8.4/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /var/folders/q6/l4q1yvg11v3dftcbdqr8jxgh0000gq/T/tmp6b9bs29g
       cwd: /private/var/folders/q6/l4q1yvg11v3dftcbdqr8jxgh0000gq/T/pip-install-re_pqhol/xmlsec_f862b9f5baae4fe49f2ba58dadb464f1
  Complete output (20 lines):
  running bdist_wheel
  running build
  running build_py
  /private/var/folders/q6/l4q1yvg11v3dftcbdqr8jxgh0000gq/T/pip-build-env-dqtkuueu/overlay/lib/python3.8/site-packages/setuptools/dist.py:648: UserWarning: Usage of dash-separated 'description-file' will not be supported in future versions. Please use the underscore name 'description_file' instead
    warnings.warn(
  /private/var/folders/q6/l4q1yvg11v3dftcbdqr8jxgh0000gq/T/pip-build-env-dqtkuueu/overlay/lib/python3.8/site-packages/setuptools/dist.py:648: UserWarning: Usage of dash-separated 'build-requires' will not be supported in future versions. Please use the underscore name 'build_requires' instead
    warnings.warn(
  /private/var/folders/q6/l4q1yvg11v3dftcbdqr8jxgh0000gq/T/pip-build-env-dqtkuueu/overlay/lib/python3.8/site-packages/setuptools/dist.py:648: UserWarning: Usage of dash-separated 'upload-dir' will not be supported in future versions. Please use the underscore name 'upload_dir' instead
    warnings.warn(
  package init file 'src/xmlsec/__init__.py' not found (or not a regular file)
  creating build
  creating build/lib.macosx-10.15-x86_64-3.8
  creating build/lib.macosx-10.15-x86_64-3.8/xmlsec
  copying src/xmlsec/py.typed -> build/lib.macosx-10.15-x86_64-3.8/xmlsec
  copying src/xmlsec/tree.pyi -> build/lib.macosx-10.15-x86_64-3.8/xmlsec
  copying src/xmlsec/__init__.pyi -> build/lib.macosx-10.15-x86_64-3.8/xmlsec
  copying src/xmlsec/constants.pyi -> build/lib.macosx-10.15-x86_64-3.8/xmlsec
  copying src/xmlsec/template.pyi -> build/lib.macosx-10.15-x86_64-3.8/xmlsec
  running build_ext
  error: xmlsec1 is not installed or not in path.
  ----------------------------------------
  ERROR: Failed building wheel for xmlsec
Failed to build xmlsec
ERROR: Could not build wheels for xmlsec which use PEP 517 and cannot be installed directly

However, I verified that xmlsec1 was installed with xmlsec1 --version, which returned: xmlsec1 1.2.32 (openssl)

So far, I installed pkg-config 0.29.2_3, Libxmlsec1 1.2.32, and libxml2 2.9.10_2 with homebrew.

I have also added the necessary Libxmlsec1 exports and openssl 1.1 exports to my ./zshrc.

Is there an additional parameter that I need to add to my zsh path to make this pip install work properly that I'm missing?

like image 211
Rachel Sheikh Avatar asked Nov 15 '22 21:11

Rachel Sheikh


2 Answers

The error is confusing. It seems to require the dev lib

sudo apt install libxmlsec1 libxmlsec1-dev

(If it is still failing try the answer by Almenon)

like image 113
ozma Avatar answered Dec 28 '22 07:12

ozma


I ran into the same problem on Ubuntu. I think the issue was that brew's pkg-config was being used instead of the pkg-config I installed via apt. To fix it change your PKG_CONFIG_PATH to point to the apt pkg-config.

For me it's the below command, but it might be different if you're on mac.

export PKG_CONFIG_PATH=/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig

Then run pip install and enjoy. 🙂

Also not sure if it makes a difference but I installed Libxmlsec1 via apt.

like image 26
Almenon Avatar answered Dec 28 '22 08:12

Almenon