Получение «ошибка: xmlsec1 не установлен или отсутствует в пути.», Когда pip устанавливает xmlsec

Я использую MacOS 10.15.7 Catalina, и в настоящее время я использую Python 3.8.4 с Pip 21.1.1

По какой-то причине я продолжаю получать сообщение об ошибке при попытке запустить python -m pip install xmlsec

Ошибка в текстовой форме:

      ➜ 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

Однако я подтвердил, что xmlsec1 был установлен с xmlsec1 --version, который вернул: xmlsec1 1.2.32 (openssl)

Пока я установил pkg-config 0.29.2_3, Libxmlsec1 1.2.32, а также libxml2 2.9.10_2 с домашним пивом.

Я также добавил необходимые Libxmlsec1 экспорт и openssl 1.1 экспорт в мой ./zshrc.

Есть ли дополнительный параметр, который мне нужно добавить к моему пути zsh, чтобы эта установка работала правильно, но мне не хватает?

3 ответа

Ошибка сбивает с толку. Кажется, требуется dev lib

      sudo apt install libxmlsec1 libxmlsec1-dev

(Если это все еще не удается, попробуйте ответ Альменона)

Я столкнулся с той же проблемой на Ubuntu. Я думаю, проблема заключалась в том, что pkg-config от brew использовался вместо pkg-config, который я установил через apt. Чтобы это исправить, измените PKG_CONFIG_PATH так, чтобы он указывал на apt pkg-config.

Для меня это команда ниже, но она может быть другой, если вы работаете на 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

Затем запустите pip install и наслаждайтесь.

Также не уверен, что это имеет значение, но я установил Libxmlsec1 через apt.

Я столкнулся с проблемой, когда пытался развернуть своего чат-бота в Heroku. Это то, что я сделал, чтобы решить проблему. Надеюсь, это поможет кому-то, кто просматривает этот пост, найти решение!

Сообщение об ошибке указывает, что xmlsec1 не установлен или отсутствует в пути. Вы можете попробовать добавить xmlsec1 в качестве пакета сборки на Heroku, выполнив следующие действия:

  1. В терминале перейдите в каталог вашего проекта.
  2. Добавьте сборочный пакет xmlsec1 в свое приложение Heroku, выполнив следующую команду: Heroku buildpacks:add https://github.com/heroku/heroku-buildpack-apt.git
  3. Создайте файл с именем Aptfile в корневом каталоге вашего проекта. Добавьте в Aptfile следующие строки: libxml2-dev libxmlsec1-dev pkg-config.
  4. Зафиксируйте Aptfile в своем репозитории git и отправьте изменения в Heroku, выполнив следующие команды:git add Aptfilegit commit -m «Добавить Aptfile для пакета сборки xmlsec1» git push Heroku main

Это должно установить xmlsec1 и его зависимости в вашем приложении Heroku и позволить сборке успешно завершиться.

Другие вопросы по тегам